跳到正文

Gin

中级通用

Gin 是用 Go 编写的 Web 框架,帮你把 HTTP 请求交给对应的处理函数,并组织参数读取、校验和响应。做网站或 App 的后端接口时,你可以少写重复的请求处理代码,把精力放在业务逻辑上。

你可能会说:「帮我用 Go 搭一个给 App 用的后端,能接收请求、检查参数并返回数据。」

读之前建议先了解

动手看看

查询订单客户端编号 abcGin路由订单处理函数订单库尚未查询
1

用户想查看订单详情,却把订单编号填成了 abc。客户端发送 GET /orders/abc,看看后端怎么处理。

要点

  1. 1

    路由决定请求交给谁

    你把请求方法和路径对应到处理函数,例如用 POST /notes 创建笔记。因为同一路径可以对应不同方法,所以查询和创建能共用路径,却进入不同的处理逻辑。

  2. 2

    上下文串起输入与输出

    处理函数通过 gin.Context 读取路径参数、查询参数或请求体,也通过它返回状态码和 JSON。它承载的是当前请求的信息,不是保存所有用户数据的全局仓库。

  3. 3

    中间件集中处理共用步骤

    多个接口都要记录日志或检查登录状态时,我们可以把这些步骤放进中间件。这样接口函数更专注于业务;登录检查失败时,中间件可以返回错误并中止后续处理。

容易混淆的地方

Go 是编程语言,Gin 是用这门语言构建 HTTP 服务的框架,两者不是替代关系。Go 标准库的 net/http 本身也能开发接口,Gin 在它之上提供路由、中间件和参数绑定等便利,但不会自动替你完成数据库访问或业务规则。

什么时候用

适合用

  • 团队使用 Go,为网站或 App 开发登录、笔记和订单等 HTTP 接口。
  • 给 AI 工具搭建后端,统一接收前端请求,再调用模型服务并返回结果。
  • 已有 Go 服务需要增加管理接口,并让多个接口共用日志和身份检查。

不适合用

  • 只是发布没有后端逻辑的展示页,用静态网站托管即可,无需引入 Gin。
  • 只是写本地批量处理文件的命令行工具,直接用 Go 程序即可。
  • 项目已用 Django 提供接口且功能足够,继续扩展现有后端比另建 Gin 服务更合适。

练一练

你要用 Go 给笔记 App 做后端:创建笔记需要检查登录状态,标题不能为空,还要保存到数据库。对 Gin 的分工,哪种理解更合适?

让 AI 帮你做

请用 Go 和 Gin 实现笔记后端,提供创建和查询接口,返回 JSON。创建时校验标题非空,通过中间件检查登录状态;将数据库访问与路由处理分开,明确错误状态码,并补充正常、参数错误和未登录的接口测试。

接下来学什么