Go 语言项目开发实战
孔令飞
腾讯云专家工程师,前 Red Hat、联想云工程师
41030 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 61 讲
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

17 | API 文档:如何生成 Swagger API 文档 ?

更好的社区支持
使代码更易读
功能更强大
通过工具生成
直接编写JSON/YAML格式的Swagger文档
Swagger Codegen
Swagger UI
Swagger编辑器
生成文档和启动HTTP服务查看Swagger文档
合并Swagger文档
验证Swagger文档是否合法
生成客户端代码
生成服务端代码
对比Swagger文档
编写带go-swagger注释的API文档
示例代码
解析注释生成Swagger文档
swagger命令行工具介绍
go-swagger的其他特性
go-swagger的优势
两种方法
Swagger是实现规范的工具
OpenAPI是API规范
包含的工具
基于OpenAPI规范构建的开源工具
减少沟通成本
减少用户上手的复杂度
API文档
重复和缺乏乐趣
课后练习
总结
IAM Swagger文档
go-swagger其他常用功能介绍
如何使用swagger命令生成Swagger文档
安装Swagger工具
用go-swagger来生成Swagger API文档
Swagger和OpenAPI的区别
Swagger介绍
生成API接口文档的重要性
必须编写的文档
反感编写文档
如何生成 Swagger API 文档

该思维导图由 AI 生成,仅供参考

你好,我是孔令飞。
作为一名开发者,我们通常讨厌编写文档,因为这是一件重复和缺乏乐趣的事情。但是在开发过程中,又有一些文档是我们必须要编写的,比如 API 文档。
一个企业级的 Go 后端项目,通常也会有个配套的前端。为了加快研发进度,通常是后端和前端并行开发,这就需要后端开发者在开发后端代码之前,先设计好 API 接口,提供给前端。所以在设计阶段,我们就需要生成 API 接口文档。
一个好的 API 文档,可以减少用户上手的复杂度,也意味着更容易留住用户。好的 API 文档也可以减少沟通成本,帮助开发者更好地理解 API 的调用方式,从而节省时间,提高开发效率。这时候,我们一定希望有一个工具能够帮我们自动生成 API 文档,解放我们的双手。Swagger 就是这么一个工具,可以帮助我们生成易于共享且具有足够描述性的 API 文档
接下来,我们就来看下,如何使用 Swagger 生成 API 文档。

Swagger 介绍

Swagger 是一套围绕 OpenAPI 规范构建的开源工具,可以设计、构建、编写和使用 REST API。Swagger 包含很多工具,其中主要的 Swagger 工具包括:
Swagger 编辑器:基于浏览器的编辑器,可以在其中编写 OpenAPI 规范,并实时预览 API 文档。https://editor.swagger.io 就是一个 Swagger 编辑器,你可以尝试在其中编辑和预览 API 文档。
Swagger UI:将 OpenAPI 规范呈现为交互式 API 文档,并可以在浏览器中尝试 API 调用。
Swagger Codegen:根据 OpenAPI 规范,生成服务器存根和客户端代码库,目前已涵盖了 40 多种语言。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何使用go-swagger工具生成API文档,并详细介绍了Swagger的作用、主要工具以及与OpenAPI的区别。作者重点介绍了使用go-swagger生成Swagger API文档的步骤,并推荐了go-swagger的原因。文章还介绍了常用的注释语法和go-swagger的其他常用功能,如对比Swagger文档、生成服务端和客户端代码,以及验证Swagger文档是否合法等。通过本文,读者可以了解到Swagger的重要性以及如何利用go-swagger工具来简化API文档的生成过程,提高开发效率。此外,文章还提到了在Go服务开发中使用go-swagger生成Swagger格式的API文档的实际操作步骤,并提出了课后练习,鼓励读者尝试在自己的项目中应用所学知识。文章内容详实,适合开发人员快速了解并应用于实际项目中。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言项目开发实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • daz2yy
    一点想法,在小团队里,其实也没那么规范,能简单就简单点,目前用的是 Postman 生成的文档,考虑的点: 1. 一方面程序员自己调试接口必然会用到接口调用工具,postman大家也比较熟悉; 2. 另一方面开发完之后,它能直接生成在线文档,不用重新去定义文档使用的 API 的字段、结构体等,感觉会方便很多,而且能实时同步修改(接口有变动可以同步反映到文档上,不需要二次修改 api 文档,减少人为的错误) 请教下老师对两者的看法,主要是我觉得写 swagger 接口注释这个工作比较繁琐,另外需要特意去维护它,容易出现代码改了但是文档未改的情况;或者说老师这边有什么好的实践经验。 FYI:Makefile 说明那里有个 Models 写成了 Modles

    作者回复: 文档怎么编写,这里其实没有一个统一的、标准的规范,因为不同团队对API文档的要求、对使用工具的选择都不一样。 这一讲介绍的方法,仅供参考。具体使用哪种,你们可以参考这一讲介绍的方法, 再结合自己的实际需求和情况,进行调研之后,再做选择。 如果你们觉得postman、或者一些在线工具能满足你们的需求,其实我觉得可能要不用swagger更好些,毕竟可视化、而且真的很方便、效率很高。 感谢反馈。

    2021-07-05
    5
    7
  • 遇见@z
    看着好麻烦,我们公司自己写的框架通过扫描ast语法树生成openapi,代码即文档

    作者回复: 强,这个没有固定的方法,可以根据需要自己选择。这是个好方法,后面我看下怎么补下这种方式

    2021-07-08
    4
    6
  • helloworld
    思考题可能的好处:1. 方便和项目根路径下的帮助文档目录docs做区分;2. 路径层次清晰辨认功能;3. 方便启api文档的http服务?

    作者回复: 说的很好。再补充下:放在api目录下,说明这个是api的定义文件。API文档聚合在一个目录下,后期维护,查看都很方便

    2021-07-03
    4
  • 先听
    swagger可以通过扫描源码生成文档。但是后端往往需要在编码之前就提供接口文档。貌似有些矛盾

    作者回复: 所以这里,可以选择直接编写swagger格式的API接口文档。

    2021-07-21
    2
    2
  • Geek_5baa01
    需求确认了后,后台首先应该写swagger 提供给前端开发, 相互不影响, 按照你这个套路, 是不是得后端开发完了在让前端搞

    作者回复: 不是,要先写swagger文档。这里根据注解来生成swagger文档,不太建议用了。或者先把伪代码写出来。 重点结论:建议直接编写swagger文档。

    2022-11-14归属地:广东
    1
  • NULL
    "目前最新的 OpenAPI 规范是OpenAPI 3.0(也就是 Swagger 2.0 规范)" 这里错了啊, 现在最新的规范是2021年2月16日发布的 OpenAPI 3.1.0, 而且 OpenAPI 3.0 != Swagger 2.0 OpenAPI有三个版本 Swagger 2.0, OpenAPI 3.0.x, OpenAPI 3.1.0 详见: https://swagger.io/blog/news/whats-new-in-openapi-3-0/ https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0

    作者回复: 我联系小编更正下,感谢反馈~

    2022-07-30归属地:广东
    1
  • 咖梵冰雨
    这个demo运行会有跨域问题?这个本地咋解决,我gin加了中间件运行跨域好像不管用

    作者回复: 不会有跨域的问题。跨域: 浏览器访问的域名和浏览器发送请求的域名不一致,会触发浏览器的跨域请求。

    2021-11-09
    2
    1
  • types
    swagger文档可以手动编写,也可以通过工具解析注释生成文档。 说明关于swagger 文档产生了2中开发模式: 1. 手动编写swagger 文档,可以通过文档生成代码 2. 先编写代码,添加swagger规范的注释,生成文档。 请问一般开发中,使用哪种swagger模式?(我看kubernetes中的api doc不是通过代码生成的)

    作者回复: 哪种都有,根据需要选择吧,如果需要并行开发,可以先编写swagger,否则可以根据喜好选择2.

    2021-07-31
    2
    1
  • Jone_乔泓恺
    swagger generate 命令会找到 main 函数,然后遍历所有的源代码,解析源码中与 Swagger 相关的注释,然后自动生成 swagger.json/swagger.yaml 文件; version: v0.29.0 不适用了吧?

    作者回复: 我check下

    2022-07-06归属地:广东
  • yangchnet
    请问老师怎么看待“protoc-gen-openapiv2”这个工具,使用proto文件定义了接口出入参后可以直接生成swagger文档,不用再手动去编写。是不是比文中这种去手动编写的方便一点呢。

    作者回复: 我比较喜欢手动编写吧。 openapi这类工具,能帮助自动生成文档、代码等。比较规范,但是编写文档的工作量跟手动编写没啥区别

    2022-02-05
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部