使用golang的网络API
这是一个使用golang创建网络API的POC。它没有使用像六边形架构那样的好的架构。
但是,它包含了使用PostgreSQL和Migrations的CRUD。
使用的软件包
- gorm.io/gorm
- github.com/gin-gonic/gin
- gorm.io/driver/postgres
如何运行
我假设你的本地机器上安装了docker。因此,你必须执行该命令:
docker-compose up --build
然后,你就可以执行API了:
go run main.go
也有必要安装golang。
文档
创建
curl --location --request POST 'http://localhost:5000/api/v1/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Wagner"
}'
你将收到:
{
"id": 1,
"name": "Wagner",
"created": "2021-08-05T10:17:50.026339526-07:00",
"updated": "2021-08-05T10:17:50.026339526-07:00",
"deleted": null
}
通过ID获取
curl --location --request GET 'http://localhost:5000/api/v1/users/1'
你将会收到:
{
"id": 1,
"name": "Wagner",
"created": "2021-08-05T10:56:32.197227-07:00",
"updated": "2021-08-05T10:56:32.197227-07:00",
"deleted": null
}
获取所有
curl --location --request GET 'http://localhost:5000/api/v1/users'
你将收到
[
{
"id": 1,
"name": "Wagner",
"created": "2021-08-05T10:17:50.026339-07:00",
"updated": "2021-08-05T10:17:50.026339-07:00",
"deleted": null
}
]
更新
curl --location --request PATCH 'http://localhost:5000/api/v1/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"id": 1,
"name": "Wagner marques"
}'
您将收到
{
"id": 1,
"name": "Wagner marques",
"created": "2021-08-05T10:56:32.197227-07:00",
"updated": "2021-08-05T10:56:32.197227-07:00",
"deleted": null
}
删除
curl --location --request DELETE 'http://localhost:5000/api/v1/users/1'
你将会收到一个状态 204
如何改进
更新端点在请求体中接收的是ID。尝试改变它并使用请求路径发送用户ID。)