Какова функция настройки springdo c -openapi-maven-plugin / apiDocsUrl? - PullRequest
4 голосов
/ 06 января 2020

Я использую springdo c -openapi-maven-plugin со следующей (стандартной) конфигурацией:

        <plugin>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-maven-plugin</artifactId>
            <version>0.2</version>
            <executions>
                <execution>
                    <id>integration-test</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Плагин работает, но нет вывода.

Я получаю ошибку 404 в выводе Maven:

[INFO] --- springdoc-openapi-maven-plugin:0.2:generate (integration-test) @ paatinc-util-websrv ---
10:40:33.930 [http-nio-8080-exec-1] INFO  o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
10:40:33.931 [http-nio-8080-exec-1] INFO  o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
10:40:33.956 [http-nio-8080-exec-1] INFO  o.s.web.servlet.DispatcherServlet - Completed initialization in 25 ms
10:40:33.969 [http-nio-8080-exec-1] INFO  io.paat.util.filter.LoggingFilter - GET http://localhost:8080/v3/api-docs from 127.0.0.1
[ERROR] An error has occured: Response code 404

Я вижу из своего журнала, что 404 находится на вызове: http://localhost: 8080 / v3 / api-docs

Я также вижу в документах springdo c -openapi-maven-plugin следующую конфигурацию:

 <configuration>
  <apiDocsUrl>http://localhost:8080/v3/api-docs</apiDocsUrl>
  <outputFileName>openapi.json</outputFileName>
  <outputDir>/home/springdoc/maven-output</outputDir>
 </configuration>

Итак, похоже, что плагин пытается открыть локальный сервер во время интеграционных тестов и не удается. Какой в ​​этом смысл? Я думал, что плагин будет читать мои исходные файлы и генерировать файл openapi. json. Почему необходимо установить HTTP-соединение с / v3 / api-docs?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Сначала добавьте эту зависимость Maven в ваш проект :

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.3.2</version>
        <scope>compile</scope>
    </dependency>

Во-вторых, сделайте плагин Maven работоспособным :

    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>pre-integration-test</id>
                    <goals>
                        <goal>start</goal>
                    </goals>
                </execution>
                <execution>
                    <id>post-integration-test</id>
                    <goals>
                        <goal>stop</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-maven-plugin</artifactId>
            <version>0.3</version>
            <executions>
                <execution>
                    <phase>integration-test</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <outputFileName>openapi.json</outputFileName>
                <outputDir>${project.build.directory}/openapi-spec</outputDir>
            </configuration>
        </plugin>
    </plugins>
0 голосов
/ 10 апреля 2020

Используя springdo c -openapi-ui , вы генерируете документацию (html, json & yaml) в время выполнения при развертывании приложения.

В некоторых сценариях ios вы можете захотеть получить документацию во время сборки, и именно для этого springdo c -openapi-maven-plugin . Чтобы это работало, вам также нужно, чтобы ваше приложение запускалось с использованием весенней загрузки на этапе интеграции, как объяснено в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...