我正在使用 Java 8、Spring Boot 和 Maven。
我有一个很大的 OpenAPI 文件(swagger 2.0 yaml),我想将它拆分成多个文件。
但我想将所有内容打包到一个文件中,然后再导入到我的 API 管理器中。
我知道我可以使用 node.js 命令做到这一点:
swagger-cli bundle openapi.yaml --outfile _build/openapi.yaml --type yaml
引用:https://davidgarcia.dev/posts/how-to-split-open-api-spec-into-multiple-files/
问题:
有一种方法可以用 Maven 做到这一点吗?像一些构建器插件放入 pom.xml 并在目标文件夹中生成包?
最佳答案
Swagger Codegen Maven plugin可以将多文件 OpenAPI 定义捆绑到单个文件中。为 OpenAPI 2.0 使用插件版本 2.x,版本 3.x对于 OpenAPI 3.0。请注意,2.x 和 3.x 版本具有不同的 groupId
和略有不同的配置值。
OpenAPI 2.0 示例:
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.4.26</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/openapi.yaml</inputSpec>
<!-- Use 'swagger-yaml' to get resolved YAML or 'swagger' to get resolved JSON -->
<language>swagger-yaml</language>
<configOptions>
<!-- Default file name is swagger.yaml or swagger.json -->
<outputFile>openapi.yaml</outputFile>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
OpenAPI 3.0 示例:
<plugin>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.33</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/openapi.yaml</inputSpec>
<!-- Use 'openapi-yaml' to get resolved YAML or 'openapi' to get resolved JSON -->
<language>openapi-yaml</language>
<!-- Default is ${project.build.directory}/generated-sources/swagger -->
<output>_build</output>
<configOptions>
<!-- Default file name is openapi.yaml or openapi.json -->
<outputFile>openapi.yaml</outputFile>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
关于java - 如何使用 Java 和 Maven 将所有 swagger 文件打包成一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71149899/