目前的Java开发普遍使用API??生成工具OpenAPI。今天,一个工作了2年的小伙伴突然被问到Swagger工作流,无语了。所以,来找我,希望我能科普一下。今天,我就把我的理解分享给大家。一、Swagger介绍记得很多年前,在Swagger出现之前,我也是用自己手写的Maven插件来实现自动生成API的功能。界面有点难看,我给大家展示一下:当时我还想着开源,但是Swagger出来后,我就从github上下载了源码。Swagger是一套基于OpenAPI规范构建的开源工具,可以帮助我们设计、构建、记录和使用RestAPI。Swagger主要包括以下三个部分:SwaggerEditor:基于浏览器的编辑器,我们可以用它来编写我们的OpenAPI规范。SwaggerUI:它将我们编写的OpenAPI规范呈现为交互式API文档。SwaggerCodegen:它通过为OpenAPI规范定义的任何API生成服务器存根和客户端SDK来简化构建过程。2、前后端分离开发后为什么要使用Swagger维护一个及时更新完整的RestAPI文档,可以大大提高开发效率。传统意义上的文档是由后端开发人员手工编写的,通常以Doc或md的形式发布到离线。在开发阶段,接口修改非常频繁,难以保证文档更新的及时性。久而久之,就失去了参考价值,反而会增加团队建设之间的沟通成本。而Swagger为我们提供了一种全新的API文档维护方式。只要项目发布,就可以自动更新,可以同步到线上。用户只需要记住一个固定的URL,并实时刷新,就可以访问最新版本。API文档已上线。我总结一下Swagger的主要优点:1)代码变了,文档变了。Swagger只需少量的注解,就可以根据代码自动生成API文档,保证了文档的时效性。2)跨语言,支持40多种语言。3)提供交互式UI,我们可以直接在文档页面调试API,省去了准备复杂的调试参数。4)也可以将文档导入自动化测试工具,快速生成测试报告。三、Swagger工作流程Swagger接口生成工作流程:1、系统启动时,扫描Swagger配置类2、在该类中指定要扫描的包路径,找到该包及分包Controller类下标注的@RestController注解.你也可以通过下面的注解灵活配置一些参数。例如:配置发送错误返回的信息@ApiError,配置一个或多个请求参数,@ApiImplicitParam,@ApiImplicitParams等。3.根据Controller类中的Swagger注解生成接口文档,启动项目,访问项目虚拟路径/swagger-ui,查看生成文档内容。
