Gin handler 不要直接写 SQL
在 handler 里直接写 SQL,短期看少了一层,长期会让接口层承担参数解析、鉴权、事务、数据访问和响应组装所有职责。
我更习惯让 handler 做三件事:绑定请求、调用 service、返回响应。SQL 放 repository,事务边界放 service 或 usecase。
func Create(c *gin.Context) {
var req CreateReq
if bind(c, &req) { return }
data, err := svc.Create(c.Request.Context(), req)
render(c, data, err)
}这样写不是为了层数好看,而是为了测试和修改边界清楚。接口变化不应该牵动 SQL,表结构变化也不应该牵动路由。
版权申明
本文系作者 @blogger 原创发布在Gin handler 不要直接写 SQL。未经许可,禁止转载。
评论
-- 评论已关闭 --
全部评论