发现我们公司蛮喜欢用swagger2的,那就学习一波
swagger2是什么
简单来说,swagger2
通过注解可以让API
文档可视化、并且在API
档上进行测试
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
添加swagger2配置类:Swagger2Configuration.java
@Configuration
@EnableSwagger2
public class Swagger2Configuration {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//暴露API的包名
.apis(RequestHandlerSelectors.basePackage("com.h2t.study.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//页面标题
.title("SpringBoot整合Swagger2")
.version("1.0")
//描述
.description("API 描述")
.build();
}
}
测试控制类:
@RestController
public class TestController {
@ApiOperation(value = "测试接口",notes = "传入字符串",httpMethod = "GET")
@ApiImplicitParam(dataType = "string",name = "str",value = "字符串",required = true)
@GetMapping("/test")
public Object test(@RequestParam("str") String str) {
return str;
}
}
启动程序
访问http://ip:port/swagger-ui.html,访问页面如下:
访问接口:
包含了方法请求类型、
API
、API
说明、参数说明。还可以在上面做测试
swagger2常用注解
- @Api => 修饰整个类,描述Controller的作用
- @ApiOperation=> 描述一个类的一个方法,或者说一个接口
- @ApiParam => 单个参数描述
- @ApiModel => 用对象来接收参数
- @ApiIgnore => 使用该注解忽略这个API
- @ApiImplicitParam => 一个请求参数
- @ApiImplicitParams => 多个请求参数
最后附:项目地址 ,欢迎fork与star
网友评论