Go mod 好菜系列 - 0x0E swaggo 这盘接口文档别再靠手写了

详细讲 swaggo 如何从注释生成 Swagger/OpenAPI 文档、它适合什么团队流程,以及怎样避免文档和代码一起失真。

只要项目开始有前后端协作、接口越来越多、联调越来越频繁,接口文档就会从“有空再补”迅速变成“再不补就要互相猜”。而所有靠手工维护的文档,最后大概率都会走向一个结局:代码已经改了,文档还在描述上周的世界。

swaggo 是来干嘛的

它最核心做的事,就是根据你在代码里的注释,生成 Swagger/OpenAPI 文档。换句话说,它试图让接口文档尽量贴着代码长,而不是跑去另一个地方单独养。

为什么它常见

因为它刚好击中一个非常现实的痛点:

  • 前端想看接口文档
  • 后端不想再维护一套手工文档
  • 项目又希望文档至少别完全失真

swaggo 不是完美答案,但它确实让很多团队把“文档至少能用”这件事往前推了一步。

它的工作流大概是什么

  1. 你在 handler 附近写注释
  2. 跑生成命令
  3. 项目里挂 Swagger UI
  4. 大家通过页面看接口说明

关键不在生成命令有多炫,而在“接口变动时,文档更新成本能不能低到让大家愿意做”。

一个典型注释会长这样

// GetUser godoc
// @Summary 获取用户详情
// @Description 根据用户 ID 查询详情
// @Tags users
// @Param id path int true "用户ID"
// @Success 200 {object} UserResp
// @Router /users/{id} [get]
func GetUser(c *gin.Context) {
    // ...
}

说白了,它就是在用一套约定注释,去补接口元信息。

它最适合什么团队状态

  • 接口数量开始上来了
  • 前后端联调频繁
  • 团队能接受在代码边上多写一点注释约定
  • 希望文档生成流程尽量自动化

小项目、单人项目当然也能用,但它真正价值通常在协作场景里更明显。

它并不自动保证文档真实

这点特别重要。很多人以为“文档生成于代码”就天然正确,其实并不是。因为注释本身还是人写的,人一样可能忘改、乱写、写得过时。

swaggo 解决的是“文档生成和展示流程”,不是“人永远不犯错”。

怎么才能让它真正有用

  • 把注释写在 handler 边上
  • 把生成命令放进开发流程或 CI
  • 接口改动时,把更新注释当成同一个动作
  • 别把文档当交差材料,而是当联调工具

如果只是生成一次放那儿吃灰,那它和手写文档烂尾的区别也没那么大。

小结

swaggo 不是“写文档的终极解药”,但它确实很适合 Go API 项目的现实协作节奏:

  • 它能让接口文档更贴近代码
  • 特别适合前后端频繁联调的项目
  • 文档最终靠的是流程和习惯,不是工具魔法
  • 它解决的是文档维护成本,不是文档真实性的所有问题

下一篇我们讲 prometheus/client_golang。日志告诉你“发生了什么”,指标则更像在告诉你“整体状态正往哪边走”。

Read more

Harness Engineering:从驾驭模型到构建 AI 工厂

Harness Engineering:从驾驭模型到构建 AI 工厂

2026 年,AI 编程工具的竞争焦点发生了根本性转变:决定 AI 助手好不好用的,不再是模型本身,而是包裹在模型外面的那层"Harness"。同一个模型,在不同的 Harness 下,性能差距可以达到 78% vs 42%。 这篇文章将带你深入了解 Harness Engineering——这个正在重新定义 AI 工程实践的新兴领域。 一、什么是 Harness Engineering? Harness 的字面意思是"马具/缰绳"——用来驾驭一匹强壮但不受控的马。在 AI 语境下,Harness 就是 LLM 之外的一切:工具定义、记忆系统、权限模型、反馈循环、文档规范、多

By Fuyu Jia

Claude Code CLI + Ralph:让 AI 自动完成大型编程任务的终极方案

TL;DR 当你的编程任务大到一个 AI 对话窗口装不下时,Ralph 会帮你把任务拆成小块,让 Claude Code CLI 一个接一个地自动完成——每轮都用全新的上下文窗口,不会越写越糊涂。 一、什么是 Ralph? Ralph 是一个开源项目(GitHub 16k+ Stars),基于 Geoffrey Huntley 提出的 "Ralph Pattern" 构建。它的核心理念很简单: 不要让 AI 在一个漫长的会话里做完所有事情,而是把大任务拆成小故事,每个故事用一个全新的 AI 实例来完成。 这解决了 AI 编程中最常见的痛点——上下文窗口耗尽。当对话越来越长,AI 的输出质量会明显下降。Ralph 通过「每轮一个新实例」的方式,

By Fuyu Jia