springboot集成swagger形成在线文档
添加依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
配置文件
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//是否开启 (true 开启 false隐藏。生产环境建议隐藏)
//.enable(false)
.select()
//扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有方法作为api
.apis(RequestHandlerSelectors.basePackage("com.luban.controller"))
//指定路径处理PathSelectors.any()代表所有的路径
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//设置文档标题(API名称)
.title("SpringBoot中使用Swagger2接口规范")
//文档描述
.description("接口说明")
//服务条款URL
.termsOfServiceUrl("http://localhost:8080/")
//版本号
.version("1.0.0")
.build();
}
}
对接口使用注解
@RestController(value = "test")
@Api(value = "测试接口",tags = "测试接口")
public class DemoController {
// 转入活期宝
@PostMapping("/user")
@ApiOperation(value = "测试接口",notes = "传入姓名")
public String userLockIn(@ApiParam(name = "userName",value = "姓名",required = true)@RequestParam String userName) {
return "success";
}
}
具体的注解使用方法网上有很多,就不一 一举例了。
正常项目到这里就可以通过http://localhost:8080/swagger-ui.html访问到
### 其他注意事项
有的童鞋会遇到访问404的情况,或者报错No handler found for GET /swagger-ui.html。在确保项目本身url不会出现404的时候。对于项目中使用了WebMvcConfigurer或者其他拦截器的情况
首先我们需要添加swagger的映射
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(
"classpath:/static/");
registry.addResourceHandler("swagger-ui.html").addResourceLocations(
"classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
}
还需要对wagger相关的url进行放行
.excludePathPatterns(
"/swagger-resources/**",
"/webjars/**",
"/v2/**",
"/swagger-ui.html/**"
);
然后就可以非常优雅的使用swagger文档啦。