crud-api-service-sample
Sample Golang JSON API service built with Gin and Entgo.
πππ
Requirements
In order to run service the following is required:
- Golang (tested with 1.16)
- Make (in order to use Makefile commands)
- Docker (to run database in container)
Commands
make run
to run service locally
make test
to run tests
make lint
to run linters (golangci-lint)
make check
to run both tests and linters
make build
to build service binary
make db
to start dev database (with docker)
make entgen
regenerate entgo files
Configuration
Configuration is passed as an argument e.g. go run cmd/app/main.go ./configs/dev.yml
. Database URI, environment and server parameters can be specified in this file.
Methods
Standart responses and empty requests are not shown here.
/api/v1/createPizza
Request
{
"title": "Fiery",
"price": 77700,
"dougn": "thick",
"description": "as spicy as expensive"
}
/api/v1/updatePizza
Title is immutable and can not be updated.
Request
{
"id": 13,
"price": 600,
"dough": "thin",
"description": "Now chean and thin"
}
/api/v1/getPizzas
Response
{
"pizzas": [
{
"id": 1,
"title": "Fiery",
"price": 77700,
"description": "as spicy as expensive",
"dough": "thick"
},
{
"id": 2,
"title": "Carbonara",
"price": 1000,
"description": "best pizza",
"dough": "thin"
}
]
}
/api/v1/getPizzaByID
Request
{
"id": 1
}
Response
{
"id": 1,
"title": "Fiery",
"price": 77700,
"description": "as spicy as expensive",
"dough": "thick"
}
/api/v1/deletePizzaByID
Request
{
"id": 9
}