我有一个现有的Spring REST API,我想为其生成OpenAPI 3.0 YAML文件,而不是Swagger 2.0 JSON / YAML?
从现在开始,SpringFox不支持YAML生成。它使用Swagger 2.0(遵循OPEN API 3.0规范)生成JSON。
此外,还有https://github.com/openapi-tools/swagger-maven-plugin,但它似乎不支持Spring Rest。
我尝试了Kongchen spring-maven-plugin,它能够生成YAML文件,但是具有Swagger 2.0定义,而不是像OPEN API 3.0:
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/"
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何生成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: …Run Code Online (Sandbox Code Playgroud) 貌似官方招摇的OpenAPI的规范V3支持接近释放https://blog.readme.io/an-example-filled-guide-to-swagger-3-2/和招摇,代码生成了3.0.0支持开发并在分支上传递一定程度的测试https://github.com/swagger-api/swagger-codegen3.0.0
我有一个swagger规范(从我现有的2.0规范通过https://github.com/mermade/swagger2openapi生成,输出看起来不错)
是否有一种简单的方法来运行swagger-codegen而无需自己打包jar?
[main] INFO io.swagger.parser.Swagger20Parser - 从/input/myspec.openapi3.json读取[main] INFO io.swagger.codegen.ignore.CodegenIgnoreProcessor - 找不到.swagger-codegen-ignore文件.线程"main"中的异常java.lang.RuntimeException:缺少swagger输入或配置!at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:685)at io.swagger.codegen.cmd.Generate.run(Generate.java:285)at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java) :35)
看起来swagger-codegen repo 在你构建之后运行一个docker容器有一些支持的方式; 我只是希望/猜测有一种支持的方法来做到这一点,而不需要在本地编译,因为我需要在几个地方设置它.