JAVA全系列 教程
3762个小节阅读:7094.9k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Swagger的配置
可以在项目中创建 SwaggerConfig,进行配置文档内容
xxxxxxxxxx
@Configuration
public class SwaggerConfig {
@Bean
public Docket getDocket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(swaggerDemoApiInfo())
.select()
.build();
}
private ApiInfo swaggerDemoApiInfo(){
return new ApiInfoBuilder()
.contact(new Contact("北京尚学堂", "http://www.bjsxt.com","xxx@163.com"))
//文档标题
.title("这里是Swagger的标题")
//文档描述
.description("这里是Swagger的描述")
//文档版本
.version("1.0.0")
.build();
}
}
配置项 | 含义 |
---|---|
Docket | 摘要对象,通过对象配置描述文件的信息。 |
apiInfo | 设置描述文件中 info,参数类型 ApiInfo |
select() | 返回 ApiSelectorBuilder 对象,通过对象调用 build()可以创建 Docket 对象 |
ApiInfoBuilder | ApiInfo 构建器 |
显示效果如下:
可以通过 apis()方法设置哪个包中内容被扫描
xxxxxxxxxx
@Bean
public Docket getDocket() {
return new Docket(DocumentationType. SWAGGER_2)
.apiInfo(swaggerDemoApiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage ( "com.bjsxt.controller"))
.build();
}
注解名称自定义
xxxxxxxxxx
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME )
public @interface NotIncludeSwagger {
}
添加规则
通过下面的代码设置生成规则
xxxxxxxxxx
public ApiSelectorBuilder apis(Predicate<RequestHandler>
selector)
下面的方法表示不允许的条件
xxxxxxxxxx
public static <T> Predicate<T> not(Predicate<T> predicate)
withMethodAnnotation:表示此注解是方法级别注解
xxxxxxxxxx
@Bean
public Docket getDocket(){
return w new Docket(DocumentationType.SWAGGER_2)
.apiInfo(swaggerDemoApiInfo())
.select()
.paths(allowPaths())
.apis(not((withMethodAnnotation(NotIncludeSwagger.class)))
.build();
}
添加NotIncludeSwagger注解
在不需要生成接口文档的方法上面添加@NotIncludeSwagger 注解后,该方法将不会被 Swagger 进行生成在接口文档中。
xxxxxxxxxx
@NotIncludeSwagger
@RequestMapping("/getPeople2")
public People getPeople2(Integer id, String name, String address){
People peo = new People();
peo.setId(id);
peo.setName(name);
peo.setAddress(address);
return peo;
}
设置范围
通过下面的代码
xxxxxxxxxx
public ApiSelectorBuilder paths(Predicate<String> selector)
可以设置满足什么样规则的 url 被生成接口文档。可以使用正则表达式进行匹配。
下面例子中表示只有以/demo/开头的 url 才能被 swagger 生成接口文档。
xxxxxxxxxx
@Bean
public Docket getDocket(){
return new Docket(DocumentationType. SWAGGER_2 )
.apiInfo(swaggerDemoApiInfo())
.select()
.paths(allowPaths())
.build();
}
private Predicate<String> allowPaths(){
return or(regex("/demo/.*"));
}
如何希望全部扫描可以使用
xxxxxxxxxx
paths(PathSelectors.any())
实时效果反馈
1.通过哪个方法设置扫描的包
A apiinfo
B select
C apis
D path
答案
1=>C