本文主要达到一个效果:在浏览器中展示出所有的restAPI。
主要分为三个步骤:
1.添加依赖
2.修改代码
3.修改security配置
具体如下:
1.添加依赖:pom.xml
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version> <!--18版本和swagger冲突-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<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>
注意:如果你的项目启动时有报错:ExecutionError: java.lang.NoSuchMethodError: com.google.common.collect.FluentIterable.concat。。。注意修改上面的guava的版本。
2.修改代码:
1)增加config类
@Configuration
@EnableSwagger2
//@EnableWebMvc
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfo(
"Spring Boot 项目集成 Swagger 实例文档",
"用于xxx",
"API V1.0",
"Terms of service",
new Contact("xxx", "http://xxx.com.cn", "xxx"),
"Apache", "http://www.apache.org/", Collections.emptyList());
}
}
完成以上步骤后,你可以访问http://localhost:8080/ v2/api-docs来验证,如果没有设置拦截的话,还可以访问http://localhost:8080/swagger-ui.html来查看带UI的界面。
2)为代码添加说明:
@Api(tags = "用户相关接口", description = "提供用户相关的 Rest API")
public class UserController
@ApiOperation("新增用户接口")
@PostMapping("/add")
public boolean addUser(@RequestBody User user) {
return false;
}
@ApiModel("用户实体")
public class User {
@ApiModelProperty("用户 id")
private int id;
}
3.配置security:
如果你设置了拦截,那么时访问不了http://localhost:8080/swagger-ui.html的,需要设置:
1)增加类
/**
*
* @description:目前用于开放swagger页面
* @version :
*/
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
//swagger配置
@Override
public
void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
至此正文结束。
参考如下:
分步骤说明:https://www.ibm.com/developerworks/cn/java/j-using-swagger-in-a-spring-boot-project/index.html
shiro放开:https://www.jianshu.com/p/05be40b9a7a3
mvc问题:https://blog.csdn.net/zxc123e/article/details/84636521
其他问题:https://blog.csdn.net/cy_lightbule/article/details/95356076