前言
相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。而自动生成接口文档的框架就是我们今天的主角Swagger!
一、基本使用
使用时需要导入下面的依赖:
<!--引入swagger,自动生成api说明文档-->
<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>
然后书写下面的配置类即可完成配置!
@Configuration
@EnableSwagger2 //开启swagger2
public class SwaggerConfig {
}
浏览器访问http://localhost:8910/swagger-ui.html,即可可以看到下面的界面:

二、自定义描述内容
@Configuration
@EnableSwagger2 //开启swagger2
public class SwaggerConfig {
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//是否启动swagger
// .enable(false)
.groupName("卢泽龙")
.select()
//RequestHandlerSelectors:配置要扫描的接口方式
// basePackage : 指定要扫描的包
.apis(RequestHandlerSelectors.basePackage("org.lzl.laboratory.controller"))
// any:扫描全部
// .apis(RequestHandlerSelectors.any())
// none:不扫描
// .apis(RequestHandlerSelectors.none())
// withClassAnnotation:扫描类上的注解
// .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
// withMethodAnnotation:扫描方法上的注解
// .apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
//path() 过滤什么路径
// .paths(PathSelectors.ant("/lzl/**"))
.build();
}
//配置swagger信息 ==> apiInfo
private ApiInfo apiInfo(){
//作者信息
Contact contact = new Contact("卢泽龙","https://blog.csdn.net/MoastAll","382491212@qq.com");
return new ApiInfo(
"云上实验室的API文档说明",
"abcdefg",
"v1.0",
"https://blog.csdn.net/MoastAll",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList()
);
}
}
其中如果有这样的需求:在dev,test环境中开启swagger,其他环境不开启swagger,我们只需要给Docket加上下面的environment参数,再用acceptsProfiles方法来判断环境是否符合要求!

使用的效果为:

三、给下面的models和接口一些提示信息
1.给实体类加入下面的注解

http://localhost:8910/swagger-ui.html的models就会呈现下面的界面:

2.给controller加上下面的注解

就会出现下面的提示信息:

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)