Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API与接口方法,参数等保存同步,大大减少了接口开发人员的工作量
首先我们第一步在pom.xml中添加依赖
<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>
添加好了之后我们需要编写一个Swagger的Config类
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/")
.select()
.apis(RequestHandlerSelectors.basePackage("com.yzhch.training.controller"))
.paths(PathSelectors.any())
.build().apiInfo(new ApiInfoBuilder()
.title("SpringBoot整合Swagger")
.version("9.0")
.build());
}
}
其中最要注意的是
.apis(RequestHandlerSelectors.basePackage("xxxxxx"))中的xxxxxx部分一定要填好自己controller类的目录,这部分代码要去扫描这个目录,后面的就是一些不必要的信息,可以选填。
第三步
在代码中使用注解来标注api
先介绍第一个 在Controller类上使用的 @Api(tags = ""),在tags中填写对于Controller类描述即可
第二个是 @ApiOperation("注册") 这个要在Controller类中具体方法上使用,用于描述具体方法
使用示例:
@RestController
@Api(tags = "登录")
@RequestMapping(value = "login/")
public class LoginController {
@RequestMapping(value = "doLogin")
@ApiOperation("密码登录")
@ResponseBody
public Result<String> doLogin(HttpServletResponse response, @Valid LoginVo loginVo) throws GlobalException {
完成之后我们启动项目,然后访问http://localhost:8080/swagger-ui.html#/
可以看到以下内容
说明我们的swagger整合成功