Gin
中级通用
Gin 是用 Go 编写的 Web 框架,帮你把 HTTP 请求交给对应的处理函数,并组织参数读取、校验和响应。做网站或 App 的后端接口时,你可以少写重复的请求处理代码,把精力放在业务逻辑上。
你可能会说:「帮我用 Go 搭一个给 App 用的后端,能接收请求、检查参数并返回数据。」
动手看看查询订单详情
1
用户想查看订单详情,却把订单编号填成了 abc。客户端发送 GET /orders/abc,看看后端怎么处理。
要点Gin 怎样把请求变成业务结果?
- 1
路由决定请求交给谁
你把请求方法和路径对应到处理函数,例如用 POST /notes 创建笔记。因为同一路径可以对应不同方法,所以查询和创建能共用路径,却进入不同的处理逻辑。
- 2
上下文串起输入与输出
处理函数通过 gin.Context 读取路径参数、查询参数或请求体,也通过它返回状态码和 JSON。它承载的是当前请求的信息,不是保存所有用户数据的全局仓库。
- 3
中间件集中处理共用步骤
多个接口都要记录日志或检查登录状态时,我们可以把这些步骤放进中间件。这样接口函数更专注于业务;登录检查失败时,中间件可以返回错误并中止后续处理。
容易混淆的地方
Go 是编程语言,Gin 是用这门语言构建 HTTP 服务的框架,两者不是替代关系。Go 标准库的 net/http 本身也能开发接口,Gin 在它之上提供路由、中间件和参数绑定等便利,但不会自动替你完成数据库访问或业务规则。
什么时候用
适合用
- 团队使用 Go,为网站或 App 开发登录、笔记和订单等 HTTP 接口。
- 给 AI 工具搭建后端,统一接收前端请求,再调用模型服务并返回结果。
- 已有 Go 服务需要增加管理接口,并让多个接口共用日志和身份检查。
不适合用
- 只是发布没有后端逻辑的展示页,用静态网站托管即可,无需引入 Gin。
- 只是写本地批量处理文件的命令行工具,直接用 Go 程序即可。
- 项目已用 Django 提供接口且功能足够,继续扩展现有后端比另建 Gin 服务更合适。
练一练选一个答案,看看解释
你要用 Go 给笔记 App 做后端:创建笔记需要检查登录状态,标题不能为空,还要保存到数据库。对 Gin 的分工,哪种理解更合适?
让 AI 帮你做复制给 AI Agent 直接用
请用 Go 和 Gin 实现笔记后端,提供创建和查询接口,返回 JSON。创建时校验标题非空,通过中间件检查登录状态;将数据库访问与路由处理分开,明确错误状态码,并补充正常、参数错误和未登录的接口测试。