如何配置两个Swagger组

时间:2015-01-08 15:23:39

标签: spring spring-mvc swagger

我遵循此处提供的说明: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配置文件。在这种情况下,只有一个文件正在被选中。

有什么想法吗?

2 个答案:

答案 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)