我创建了一个 Swagger 文档,其中包含以下yaml
文件:
api/swagger/swagger.yaml
现在我想分享一个带有其定义的静态 HTML 文档,但在swagger 项目中声明,他们根本不打算支持 HTML 生成。
如何从 Swagger 项目生成静态 HTML 文件?
我创建了一个 Swagger 文档,其中包含以下yaml
文件:
api/swagger/swagger.yaml
现在我想分享一个带有其定义的静态 HTML 文档,但在swagger 项目中声明,他们根本不打算支持 HTML 生成。
如何从 Swagger 项目生成静态 HTML 文件?
我能想到的最简单的方法是使用Swagger Editor:
editor.swagger.io 使用 generator.swagger.io 生成 API 客户端、服务器存根和文档,generator.swagger.io 由开源项目Swagger Codegen 提供支持。
./swagger.json
(或任何你的 swagger json 被调用)(见这里)有swagger2markup-cli可以生成静态adoc
文件。
确保您已安装 Java 运行时。(我正在使用Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
)。
你拿罐子:
wget https://jcenter.bintray.com/io/github/swagger2markup/swagger2markup-cli/1.1.0/swagger2markup-cli-1.1.0.jar
您可以通过以下方式生成静态adoc
:
java -jar ~/your/path/swagger2markup-cli-1.1.0.jar convert -i api/swagger/swagger.yaml --outputFile static-swagger
然后可以html
通过以下方式将该 adoc 文件转换为文件asciidoctor
:
asciidoctor *.adoc
您可能需要安装它,因为我使用的是 Ubuntu,我可以通过:
sudo apt-get -qq install asciidoctor
您是否尝试将其导出以从不同的服务创建单个文档?如果是,另一种可能是https://github.com/varghgeorge/microservices-single-swagger。这个简单的 springboot 微服务将根据 YAML 配置在一个地方显示你所有的 swagger 文档(来自不同的服务器)。
另一个答案建议使用Swagger Editor
,这很棒。但是,要获取要导入的单个文件:
npm install -g @apidevtools/swagger-cli
swagger-cli bundle openapi.yaml --outfile ./openapi-expanded.json --type json
上面的命令假设你的根文件被命名openapi.yaml
并且你想要一个输出 JSON 文件openapi-expanded.json
:那个 JSON 就是你要导入的。