#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 для большего