Как сообщить плагину springdoc-openapi-maven, чтобы он генерировал YAML вместо JSON?

#json #spring-boot #yaml #springdoc-openapi-maven-plugin

Вопрос:

Я использую springdoc-maven-openapi-plugin этот способ:

         <plugin>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <id>integration-test</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <apiDocsUrl>http://localhost:9090/v3/api-docs</apiDocsUrl>
                <outputDir>${project.build.directory}/my_open_api_specification/</outputDir>
                <outputFileName>my_open_api_specification.yml</outputFileName>
                <skip>false</skip>
            </configuration>
        </plugin>
 

Это приводит к созданию документа OpenAPI в целевой папке с именем, имеющим суффикс «.yml«, но на самом деле это JSON.

Как я могу сказать плагину, чтобы он эффективно создавал документ в формате YAML?

Ответ №1:

http://localhost:9090/v3/api-docs является api-URL по умолчанию, который генерирует JSON. Для создания YAML просто используйте http://localhost:9090/v3/api-docs.ЯМЛ

Комментарии:

1. о, мой бог. Это было слишком просто, не так ли? лол

2. Да, это было так. У меня была та же проблема несколько недель назад, и я искал ее часами … Я никогда этого не забуду. 🙂

Ответ №2:

Вопрос заключается в генерации во время компиляции.

Для компиляции это будет похоже:

 <configuration>
    <apiDocsUrl>http://localhost:8080/v3/api-docs.yaml</apiDocsUrl>
    <outputFileName>openapi.yaml</outputFileName>
    <skip>false</skip>
</configuration>

 

apiDocsUrl должно заканчиваться на в .yaml противном случае он генерирует JSON в файле yaml

Ожидайте, запустив:

 ./mvnw springdoc-openapi:generate
 

В ./target/openapi.yaml спецификации в формате yaml

Видишь https://github.com/springdoc/springdoc-openapi-maven-plugin/issues/12 для большего