相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。
而随着Springboot、Springcloud等微服务的流行,每个项目都有成百上千个接口调用,这时候再要求人工编写接口文档并且保证文档的实时更新几乎是一件不可能完成的事,所以这时候我们迫切需要一个工具,一个能帮我们自动化生成接口文档以及自动更新文档的工具。它就是Swagger。
Swagger提供了一个全新的维护API文档的方式,有4大优点:
自动生成文档:只需要少量的注解,Swagger就可以根据代码自动生成API文档,很好的保证了文档的时效性。
跨语言性,支持40多种语言。
SwaggerUI呈现出来的是一份可交互式的API文档,我们可以直接在文档页面尝试API的调用,省去了准备复杂的调用参数的过程。
还可以将文档规范导入相关的工具(例如SoapUI),这些工具将会为我们自动地创建自动化测试。
现在我们知道了Swagger的作用,接下来将其集成到我们项目中。
Swagger集成
集成Swagger很简单,只需要简单三步。
第一步:引入依赖包
!--swagger--dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version/dependency!--swagger-ui--dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version/dependency
第二步:修改配置文件
application.properties加入配置
#用于控制是否开启Swagger,生产环境记得关闭Swagger,将值设置为falsespringfox.swagger2.enabled=true
2.增加一个swagger配置类
ConfigurationEnableSwagger2ConditionalOnClass(Docket.class)publicclassSwaggerConfig{privatestaticfinalStringVERSION="1.0";Value("${springfox.swagger2.enabled}")privateBooleanswaggerEnabled;BeanpublicDocketcreateRestApi(){returnnewDocket(DocumentationType.SWAGGER_2).enable(swaggerEnabled).groupName("SwaggerDemo").apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withClassAnnotation(Api.class)).paths(PathSelectors.any()).build();}/***添加摘要信息*/privateApiInfoapiInfo(){returnnewApiInfoBuilder().title("接口文档").contact(newContact("JAVA日知录","