2015-01-08 4 views
0

Я следую инструкциям, приведенным здесь: Why does swagger annotations generate api-docs with default path prefix и все отлично работает. У меня есть API-интерфейсы Swagger, отображающиеся с пользовательским именем группы.Как настроить две группы Swagger

Теперь я хочу добавить еще одну группу, и именно здесь я застрял. Я попытался изменить конфигурационный файл на:

@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("https://stackoverflow.com/users/.*"); 
    } 

} 

К сожалению, это не работает. Ни одна из групп в итоге даже не появляется. Затем я попытался создать два конфигурационных файла Swagger. В этом случае подбирается только один файл.

Любая идея?

+0

Если вы не получили здесь ответа, я бы очень рекомендовал открыть проблему в репозитории swagger-springmvc. Я не знаю, отслеживают ли они здесь вопросы, но там они отвечают на вопросы. – Ron

ответ

1

Для любого будущего кемпера, я думаю, Swagger работает так, как должно. Ошибка, которую я делал, заключалась в том, чтобы предположить, что hitting/api-docs покажут мне список всех групп. However as the documentation говорит,/api-docs Возвращает первый список ресурсов, найденный в кеше.

В конце концов, мое чванство конфигурация выглядит следующим образом:

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.*"); 
    } 
} 
+0

Это не работает для меня :(, можете ли вы рассказать, нужна ли нам какая-либо другая конфигурация. –

Смежные вопросы