【发布时间】:2021-11-17 03:08:30
【问题描述】:
我需要使用另一个团队创建的 REST API。他们为我提供了一个 swagger-ui 端点。我正在用Java编码。我正在使用 SpringFramework。我正在寻找能够生成我可以实现的存根和架构类的东西。
【问题讨论】:
-
请提供足够的代码,以便其他人更好地理解或重现问题。
标签: spring rest swagger code-generation
我需要使用另一个团队创建的 REST API。他们为我提供了一个 swagger-ui 端点。我正在用Java编码。我正在使用 SpringFramework。我正在寻找能够生成我可以实现的存根和架构类的东西。
【问题讨论】:
标签: spring rest swagger code-generation
Swagger Codegen 有一个Maven plugin。它可以生成 Spring 服务器存根和 Java 客户端 SDK。
Codegen 有两个版本,3.x 和 2.x。他们有不同的groupId。
版本 3.x 用于 OpenAPI 3.0 定义 (openapi: 3.0.x):
<plugin>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.27</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/api.yaml</inputSpec>
<language>java</language>
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
版本 2.x 用于 OpenAPI 2.0 定义 (swagger: '2.0')。
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.4.21</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/api.yaml</inputSpec>
<language>java</language>
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
对于受支持的 <language> 值,请将您的 OpenAPI YAML/JSON 文件粘贴到 https://editor.swagger.io 并检查“生成服务器”和“生成客户端”菜单中的值。
【讨论】:
<language>java</language> 或任何你想要的输出目标。所有代码生成器都需要一个 OpenAPI YAML/JSON 文件作为输入,您可以将其从 Swagger UI 导出为explained here。
<language>java</language> 生成一个 Java client SDK。 Codegen 可以生成服务器和客户端,输出取决于<language> 参数。一些语言值表示服务器,另一些表示客户端。