我遵循此处提供的说明:Why does swagger annotations generate api-docs with default path prefix并且事情很有效。我的Swagger API显示了自定义组名。
现在,我想添加另一个组,这就是我被困住的地方。我试图将配置文件更改为:
@Configuration
@EnableSwagger
public class MySwaggerConfig {
private SpringSwaggerConfig springSwaggerConfig;
@Autowired
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
this.springSwaggerConfig = springSwaggerConfig;
}
@Bean
public SwaggerSpringMvcPlugin customImplementation() {
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.swaggerGroup("my-group1")).includePatterns("/admin/.*");
}
@Bean
public SwaggerSpringMvcPlugin customImplementation() {
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.swaggerGroup("my-group2")).includePatterns("/users/.*");
}
}
不幸的是,这不起作用。这些小组最终都没有出现。然后我尝试创建两个Swagger配置文件。在这种情况下,只有一个文件正在被选中。
有什么想法吗?
答案 0 :(得分:1)
对于任何未来的露营者,我猜Swagger应该如此工作。我犯的错误是假设命中/ api-docs会显示所有组的列表。 However as the documentation说,/ api-docs返回缓存中找到的第一个资源列表。
最后,我的swagger配置如下所示:
public class MySwaggerConfig {
private SpringSwaggerConfig springSwaggerConfig;
@Autowired
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
this.springSwaggerConfig = springSwaggerConfig;
}
@Bean
public SwaggerSpringMvcPlugin customImplementation1() {
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.swaggerGroup("my-group1").includePatterns(".*/admin.*");
}
@Bean
public SwaggerSpringMvcPlugin customImplementation2() {
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.swaggerGroup("my-group2").includePatterns(".*/users.*");
}
}
答案 1 :(得分:0)
从方法 includePatterns 的参数的下方链接中获取。它正在接受数组。
传递数组以包含多个模式。