整合swagger2
- 引入依赖
<!--添加Swagger依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<!--添加Swagger-UI依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
- 创建Swager2Config配置类
@Configuration //标记配置类
@EnableSwagger2 //开启在线接口文档
public class Swagger2Config {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// controller包路径
.apis(RequestHandlerSelectors.basePackage("com.springboot.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//文档标题
.title("api文档")
//文档描述
.description("简单优雅的restfun风格")
//文档联系方式
// .contact(new Contact("作者", "网站", "邮箱"))
// .termsOfServiceUrl("http://blog.csdn.net/forezp")
// .license("xxx")
// .licenseUrl("http://www.xxx.com")
// 版本信息
.version("1.0")
.build();
}
}
- 在controller类中增加注解
swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiParamImplicitL:一个请求参数
@ApiParamsImplicit 多个请求参数
具体使用自行查找
例子:
@Api(tags="测试接口模块")
@RestController
public class TestController {
@Autowired
private UserServiceImpl userService;
@ApiOperation(value="展示value",notes = "展示note")
@GetMapping("/index")
public String index(){
User user=userService.getNameById("1");
return user.getName();
}
}
- 打开浏览器访问http://localhost:8080/swagger-ui.html
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c19c4e3835b5afae329dd3951d166b05.jpeg)