【发布时间】:2019-07-22 02:21:09
【问题描述】:
我想要为其生成 OpenAPI 3.0 YAML 文件而不是 Swagger 2.0 JSON/YAML 的现有 Spring REST API?
从现在开始,SpringFox 不支持 YAML 生成。它使用 Swagger 2.0(遵循 OPEN API 3.0 规范)生成 JSON。
另外还有https://github.com/openapi-tools/swagger-maven-plugin,但是好像不支持Spring Rest。
我尝试了能够生成 YAML 文件但具有 Swagger 2.0 定义而不是 OPEN API 3.0 之类的 Kongchen spring-maven-plugin:
swagger: "2.0"
info:
description: "Test rest project"
version: "1.0"
title: "Some desc"
termsOfService: "http://swagger.io/terms/"
contact:
name: "Rest Support"
url: "http://www.swagger.io/support"
email: "support@swagger.io"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "example.com"
basePath: "/api/"
所以我的问题是如何生成 OPEN API YAML 文件,例如:
openapi: 3.0.0
info:
description: Some desc
version: "1.0"
title: Test rest project
termsOfService: http://swagger.io/terms/
contact:
name: Rest Support
url: http://www.swagger.io/support
email: support@swagger.io
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
我目前正在使用swagger-maven-plugin 生成具有 Swagger 2.0 定义的 YAML 文件,并在 https://mermade.org.uk/openapi-converter 使用 swagger2openapi 将其转换为 Open API 3.0 定义
问题 1:
spring-maven-plugin 可以捕获io.swagger.v3.oas.annotations 来生成 YAML 吗?
问题 2:
在 Spring MVC 项目中使用 OPEN API 定义生成 YAML 的最佳方法是什么?
问题 3:io.swagger.v3.oas 可以用于 Spring 项目还是仅用于 JAX-RS 项目?
【问题讨论】:
-
也许这会有所帮助 - stackoverflow.com/questions/49616529/…
-
即从现有的 OPEN API YAML 文件生成代码存根。我的问题是如何反之亦然。
-
你能解决这个问题吗?我也在寻找一种方法来为我的 Spring Boot 项目生成 YAML 文件。
-
@Alig 问题本身有解决方法来实现这一点。虽然还没有直接的方法。我们将不得不等到 SpringFox 3.0 发布。
-
使用 github.com/Mermade/oas-kit/tree/master/packages/swagger2openapi 将 Swagger 2 Doc 转换为 OpenAPI 3.0 规范。
标签: spring spring-boot yaml swagger openapi