SpringBoot 集成Swagger
什么是 Swagger
Swagger 是一款RESTful API接口的文档在线自动生成和功能测试功能一体的软件.
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。欢迎添加jav高级244930845一起学习交流。
SpringBoot和Swagger集成
效果如下:-----添加Swagger2依赖
在pom.xml中添加Swagger2依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
-----配置类创建
创建swagger2配置类
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket demoApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("test")
.genericModelSubstitutes(DeferredResult.class)
.useDefaultResponseMessages(false)
.forCodeGeneration(false)
.pathMapping("/")
.select()
.paths(Predicates.or(PathSelectors.regex("/test/.*")))//哪些接口暴露给swagger
.build()
.apiInfo(demoApiInfo());//用来创建APi的基本信息
}
private ApiInfo demoApiInfo() {
ApiInfo apiInfo = new ApiInfo("测试系统相关接口",//大标题
"测试系统相关接口,注意: 测试",//小标题
"1.0",//版本
"",
"Cz.smile",//作者
"测试系统",//链接显示文字
"http://192.168.174.147:8888/test-web/"//网站链接
);
return apiInfo;
}
}
如上代码所示,首先通过@Configuration 注解,让Spring来加载该类配置。再通过 @EnableSwagger2 注解来启用
Swagger2。再通过demoApi (自定义 ) 函数创建Docket 的Bean之后, apiInfo() 用来创建该Api的基本信息(这些基本信息会展现在文档页面中),select() 函数返回一个 ApiSelectorBuilder 实例用来控制哪些接口暴露给Swagger来展示,本例采用指定扫描的包路径(包含/tset 路径 )来定义,Swagger会扫描该包下所有接口控制层定义的API,并产生文档内容。
-----为接口添加Swagger 注解
@Api(value = "菜单", description = "测试系统" )
@ApiOperation(value="高德地图匹配", notes="url/高德地图匹配")
-------请求参数
@ApiImplicitParams({ @ApiImplicitParam(name = "A",value = "经度", required = true, paramType = "query"), @ApiImplicitParam(name = "B",value = "纬度", required = true, paramType = "query") })
----访问
http:// ip:端口/项目名/swagger-ui.html