使用 go-swagger 为 go API 自动生成文档

date
Mar 9, 2023
slug
generate-api-doc-automatic-by-go-swagger
status
Published
tags
Code
Tools
summary
make swag
type
Post
Created Time
Oct 28, 2023 01:45 PM
Updated Time
Oct 28, 2023 01:45 PM
AI summary
Status
文档即代码一直以来都是我对自己的要求,一个优秀的后端项目,绝不可能出现文档和代码不匹配的情况,但写过接口文档的人都知道,这是一件费时又费力的事情,考虑到未来还要对文档进行更新和维护,简直苦不堪言。这段时间,我发现了一个好的工具,go-swagger,能够从根本上解决这个问题,通过自动生成文档的方式来维护接口文档。
我现在写接口文档的方式,就是在终端键入:
一键生成文档,简直不要太爽。

安装

工欲善其事,必先利其器,这里我是在 Mac 上,通过下面的命令安装的:
执行完成之后,我发现我的 ~/go/bin 目录下有一个可执行文件 swag 。执行:
会返回:
这表示安装成功了。
但我在项目下执行:
时,却返回了:
我在 ~/.zshrc 文件下加入了如下内容:
再导入:
再次执行 swag init ,得到了如下错误:
在项目中添加 main.go 文件,再次执行命令:swag init ,发现自动生成了 docs 文件夹,文件夹下分别有 docs.goswagger.jsonswagger.yaml 文件。
这说明 swag 安装成功且可以正常使用了,接下来配置命令,将文档自动导入至 yapi 中。
通过
全局安装 yapi 命令,安装成功后执行:
得到如下结果:
说明安装成功了。

配置

上面的内容其实只做了两件事:
  • 安装 swag 命令;
  • 安装 yapi 命令;
接下来,为了通过执行
自动生成文档,还要配置相关内容。

配置 Makefile

根据官方文档,需要进行如下配置:
其中,swag-config.go 中的内容如下:
为了将生成后的文档导入 yapi ,还需要创建并配置 yapi-import.json

配置 yapi-import.json

使用

不同项目有不同的需求,我在项目中最常用的,有两种使用方式,分别用于处理 GETPOST 请求:

GET

POST

更多使用方式,可以参考官方文档

© 孙东辉 2022 - 2025