Как интегрировать Open API 3 с проектом Spring (не Spring Boot), используя springdo c -openapi - PullRequest
2 голосов
/ 23 января 2020

Мой существующий проект работает на Spring Framework, а не на Spring Boot.

Я хочу интегрировать с ним Open API 3.

Я хочу интегрировать, используя springdo c -openapi без использования Jersey .

1 Ответ

2 голосов
/ 23 января 2020

Даже если ваше приложение использует spring без (spring-boot), оно должно работать. Вам необходимо добавить автоконфигурацию bean-компонентов и зависимостей, которые изначально предусмотрены в spring-boot.

В основном вам необходимо добавить модуль springdo c -openapi и выполнить сканирование для автоконфигурации springdo c классы, которые при загрузке автоматически загружаются для вас. В зависимости от вашего модуля вы можете найти их в файле: spring.factories каждого модуля springdo c -openapi.

Например, предположим, что вы хотите загрузить swagger-ui весной- mvc приложение, и вы используете spring.version = 5.1.12.RELEASE, и вы

Вы можете добавить следующую зависимость:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.2.28</version>
</dependency>

Если у вас нет весенней загрузки и зависимости spring-boot-autoconfigure, вам нужно добавить их. И обратите внимание на матрицу совместимости между вами spring.verion и spring-boot.version. Например, в этом случае (spring.version = 5.1.12.RELEASE):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot</artifactId>
    <version>2.1.11.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
    <version>2.1.11.RELEASE</version>
</dependency>

В этом случае, поскольку мы хотим загрузить пользовательский интерфейс для spring- mvc, вам необходимо добавить следующие в одном из ваших классов конфигурации:

@Import({ org.springdoc.core.SpringDocConfiguration.class, org.springdoc.core.SpringDocWebMvcConfiguration.class,
        org.springdoc.ui.SwaggerConfig.class, org.springdoc.core.SwaggerUiConfigProperties.class,
        org.springdoc.core.SwaggerUiOAuthProperties.class,
        org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration.class })
...