做手机ref="/tag/47/" style="color:#C468A7;font-weight:bold;">应用开发,最怕啥?不是写代码,而是看别人写的API文档。密密麻麻的文字,没有示例,参数说明不清,调一次接口像在拆炸弹。这时候,Swagger 就成了救星。
Swagger 是啥?
简单说,Swagger 是一套工具,能自动生成 API 文档,并且让这些文档“活”起来。你不仅能看接口地址、请求方式、参数列表,还能直接在页面上试调,点一下就发起请求,看返回结果。就像给API配了个可视化遥控器。
比如你在开发一个记账类App,后端同事更新了“获取本月支出”的接口,加了个新参数 category_filter。以前你得等他发消息、改文档、你再手动测试。现在打开 Swagger 页面,刷新一下,新参数自动出现在表格里,勾选试试,立马看到效果。
怎么用?举个真实场景
假设你的项目用的是 Spring Boot,后端只要加几个依赖和配置,就能把 Swagger 集成进去。比如在 pom.xml 加:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
然后写个配置类开启 Swagger,启动服务后访问 /swagger-ui.html,所有接口清清楚楚列出来,支持 GET、POST 的按钮一目了然。
对前端开发有多友好?
你在调试登录接口时,不用再靠 Postman 手动填参数。Swagger 里直接输入手机号和密码,点“Try it out”,状态码、响应数据全出来。错了?看 error message,马上定位是字段格式不对还是验证码过期。
而且文档会随着代码更新自动同步。后端改了某个字段名,Swagger 页面刷新后立刻变掉,不会出现“文档写的是旧的,代码已经改了”的坑。
不只是看文档,还能生成 SDK
有些团队会用 Swagger 的定义文件(通常是 swagger.json)自动生成移动端的网络请求代码。iOS 和 Android 都能一键生成对应的服务类,省得手写每个接口的调用逻辑。改个字段,重新生成一下,全项目搜一遍替换,效率高很多。
哪怕不生成代码,光是那个可交互的界面,就已经让沟通成本降了一大截。产品经理想看看某个功能接口长啥样,直接发个链接过去,他自己点着看,不用再追着程序员问。
小建议:别只扔个链接
虽然 Swagger 很强,但刚接触的人可能不知道怎么用。建议在项目 wiki 里写两行使用说明:比如“访问地址是 xxx/swagger-ui.html”、“登录类接口需要先调 /auth/login 获取 token”。再配上一张截图,新人上手快得多。
现在很多云服务和开源项目都默认带 Swagger 或类似的界面,比如 GitLab、Jenkins 插件、各种微服务框架。学会看这个,等于掌握了一种通用语言,换项目也不慌。