- SpringBoot集成Swagger3
- 1、Maven项目引入swagger依赖
- 2、接口相关配置(WebMvcConfig类)
- 3、添加静态资源映射(WebMvcConfig类)
- 4、不拦截接口路径(WebMvcConfig类)
- 5、Swagger常用注解
swagger官网: API Documentation & Design Tools for Teams | Swagger
1、Maven项目引入swagger依赖
io.springfox springfox-boot-starter 3.0.0 com.github.xiaoymin swagger-bootstrap-ui 1.9.6
2、接口相关配置(WebMvcConfig类)
完整代码见:reggie_take_out - Gitee.com
package com.example.config;
... ...
@Slf4j
@Configuration
// 增加的注解
@EnableOpenApi
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Bean
public Docket productApi() {
//添加head参数start
// RequestParameterBuilder tokenPar = new RequestParameterBuilder();
List pars = new ArrayList<>();
//这个位置设置请求头:比如令牌
return new Docket(DocumentationType.SWAGGER_2).select()
// 扫描的包路径
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
// 定义要生成文档的Api的url路径规则
.paths(PathSelectors.any())
.build()
.globalRequestParameters(pars)
// 设置swagger-ui.html页面上的一些元素信息。
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 标题
.title("外卖系统")
// 描述
.description("接口文档")
// 文档版本
.version("1.0")
.license("Apache License Version 2.0")
.licenseUrl("https://www.apache.org/licenses/LICENSE-2.0")
.build();
}
}
3、添加静态资源映射(WebMvcConfig类)
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始进行静态资源映射......");
registry.addResourceHandler("/backend
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/**")
.excludePathPatterns(BaseUrls.urls)
.excludePathPatterns("/error")
// 不需要拦截接口文档,需要放行的资源
.excludePathPatterns("/doc.html","/swagger-resources/**", "/webjars/**", "/swagger-ui/**", "/v3/**");
}
以上配置好即可启动项目,访问本地IP+/doc.html
5、Swagger常用注解
| 注解 | 说明 |
|---|---|
| @Api | 用在请求的类上,例如Controller层的类,表示对类的说明 |
| @ApiModel | 用在类上,通常是实体类,表示一个返回响应数据的信息 |
| @ApiModelProperty | 用在属性上,描述响应类的属性 |
| @ApiOperation | 用在请求的方法上,说明方法的用途、作用 |
| @ApilmplicitParams | 用在请求的方法上,表示一组参数说明 |
| @ApilmplicitParan | 用在@ApilmplicitParams注解中,指定一个请求参数的各个方面 |



