hello,大家好,我是千羽。
图片
上一篇,讲了《字节跳动 Golang 微服务 HTTP 框架 Hertz》入门,今天我们就通过一个实战项目,来体验 Hertz 和 Gorm 的集成。
在 Golang 开发中,许多框架和功能不像 Java 那么成熟,需要开发者自己实现。而字节跳动开源的 Hertz 框架,则提供了丰富的功能,堪称 Golang 版的 Spring Boot。
Step 1:Fork Hertz 官方 Demo
首先,将官方的 Hertz 示例仓库 fork 到自己的 GitHub 仓库,方便后续操作:
图片
然后,将项目 clone 到本地,按照官方文档操作。
图片
具体仓库地址:https://github.com/cloudwego/hertz-examples/tree/main/bizdemo/hertz_gorm
Step 2:配置与启动项目
官方 Readme 提供了启动指导,根据文档说明进行以下步骤:
- 使用 Docker 启动 MySQL 容器:
- 连接 MySQL 确保数据库正常运行:
图片
- 编译并启动项目:
若启动成功,你将看到以下日志输出:
Step 3:接口调试
在项目启动后,我们可以逐一测试接口。Hertz 项目包含了一些基本的 CRUD 接口,方便我们进行数据的操作和验证。
根据启动的日志,我们进行各个接口验证
1. /ping 接口测试
请求 URL: http://localhost:8888/ping
响应示例:
图片
2. 创建用户接口 /v1/user/create/
请求 URL: http://localhost:8888/v1/user/create/
请求参数:
响应示例:
图片
MySQL 查询效果:
图片
3. 查询用户接口 /v1/user/query/
请求 URL: http://localhost:8888/v1/user/query/
图片
请求 URL: http://localhost:8888/v1/user/query/
请求参数:
响应示例:
图片
3. 删除用户接口 /v1/user/delete/1
删除,软删除,不会真正的删除
图片
Step 4:代码解析
Service 层:
MySQL 层:
查询用户的逻辑 /v1/user/query/
Service 层:
MySQL 层:
更新用户的逻辑 /v1/user/update/1
图片
Service 层:
mysql 层:
删除 /v1/user/delete/:user_id
删除,软删除,不会真正的删除
Service 层:
mysql 层:
图片
总结
通过这个项目,我们体验了 Hertz 集成 Gorm 的基本操作,涵盖了用户的创建、查询、更新和删除接口。在 Golang 生态中,虽然框架没有 Java 完善,但 Hertz 带来了简便的解决方案,有助于开发者快速上手。
参考文章:https://www.cloudwego.io/zh/docs/hertz/