精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究
谈到API文档管理工具,不得不提到前后端分离,前后端分离之后,两者开发人员如何交互呢,就是需要用到我们后端提供的API文档工具。有了文档,就有了交流的基础。
前后端分离之后相互独立,耦合度降低,前后端甚至可以部署在不同的服务器上,但这也产生了一个问题,就是前后端集成联调的时候,前端人员和后端人员无法做到“及时协商、尽早解决”,最终导致问题集中爆发。如果使用了Swagger,就会让代码内的更新及时让开发人员掌握,不会爆发问题,这就是Swagger的好处。
Swagger能够很好的解决上面我们讨论的问题,它号称最流行的API框架、RestFul Api文档在线自动生成以及Api文档与Api定义同步更新,并且能够直接运行,可以在线测试API接口,并且支持多种语言。
首先需要创建一个SpringBoot项目
导入相关依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
编写一个控制器及我们的API接口 ,配置Swagger
@Configuration
@EnableSwagger2
public class SwaggerConfig{}
接着就可以测试运行,访问:http://localhost:8080/swagger-ui.html,效果如下所示
这里推出锐英源的Swagger使用经验,欢迎同行交流。
如果大家直接按照上面的使用流程,就是使用的swagger默认配置,当然我们也可以根据自己喜好进行个性化配置,如下是列出的一些常用配置
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// RequestHandlerSelectors,配置要扫描接口的方式
// basePackage,指定要扫描的包
// any():扫描全部 none:不扫描
// withClassAnnotation:扫描类上的注解
.apis(RequestHandlerSelectors.basePackage("io.renren.controller"))
.paths(PathSelectors.any())
.build()
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("人人开源")
.description("renren-fast文档")
.termsOfServiceUrl("https://www.renren.io")
.version("3.0.0")
.build();
}
其中的ApiInfo可以说主要是一些信息配置,比如标题、描述、服务条款网址等信息,上面的界面就是配置过的,因此大家可以看到配置的这些信息显示在页面上。接着比较重要的配置就是配置我们扫描接口的配置,常用的配置我都写在注释上了,我采用的是扫描包的配置方法,该配置包下的接口都能更显示出来。