1 Вопрос: Swagger UI с swagger.yaml в SpringBoot

вопрос создан в Wed, May 8, 2019 12:00 AM

У нас есть SpringBoot (версия 1.5.12) REST Api с springfox-swagger2 и springfox-swagger-ui (версия 2.9.2)

@EnableSwagger2
public class Application extends SpringBootServletInitializer {
   @Bean
   public Docket swagger() {
       return new Docket(SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any())
            .build();
    }

Я могу увидеть пользовательский интерфейс Swagger по адресу http: //localhost: 8080 /swagger-ui.html р>

Как настроить swagger-ui для чтения моего файла конфигурации swagger.yaml /json, чтобы он автоматически генерировался? Я попытался несколько конфигураций без успеха.

    

1
1 ответ                              1                         

Вам нужно создать класс, который может предоставить компонент 060035099111100100103506262 SwaggerResourcesProvider, который указывает расположение конфигурации, как показано ниже (учитывая, что файл @Primary присутствует в swagger.json)

src/main/resources

Затем в интерфейсе Swagger вы сможете выбрать спецификацию из своего json (здесь он назван

@Configuration
public class SwaggerSpecConfig {

    @Primary
    @Bean
    public SwaggerResourcesProvider swaggerResourcesProvider(InMemorySwaggerResourcesProvider defaultResourcesProvider) {
        return () -> {
            SwaggerResource wsResource = new SwaggerResource();
            wsResource.setName("new spec");
            wsResource.setSwaggerVersion("2.0");
            wsResource.setLocation("/swagger.json");

            List<SwaggerResource> resources = new ArrayList<>(defaultResourcesProvider.get());
            resources.add(wsResource);
            return resources;
        };
    }
}
), как показано ниже:

 введите описание изображения здесь

    
3
2019-05-08 17: 15: 32Z
new spec
источник размещен Вот