如何告诉 springdoc-openapi-maven-plugin 生成 YAML 而不是 JSON?

How to tell springdoc-openapi-maven-plugin to generate YAML instead of JSON?

我是这样使用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 格式的文档?

http://localhost:9090/v3/api-docs是默认的api-url,生成JSON。 要创建 YAML,只需使用 http://localhost:9090/v3/api-docs.YAML

问题是关于编译时生成的。

对于编译它会像:

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

apiDocsUrl 应该以 .yaml 结尾,否则它会在 yaml 文件

中生成 JSON

预计 运行:

./mvnw springdoc-openapi:generate

./target/openapi.yaml yaml 格式的规范中

查看https://github.com/springdoc/springdoc-openapi-maven-plugin/issues/12了解更多