23

我创建了一个 Swagger 文档,其中包含以下yaml文件:

api/swagger/swagger.yaml

现在我想分享一个带有其定义的静态 HTML 文档,但在swagger 项目中声明,他们根本不打算支持 HTML 生成。

如何从 Swagger 项目生成静态 HTML 文件?

4

5 回答 5

18

我能想到的最简单的方法是使用Swagger Editor

  1. 前往:https ://editor.swagger.io
  2. 单击顶部菜单栏中的“文件”,然后选择“导入文件”
  3. 导入后,点击顶部菜单栏中的“生成客户端”,然后选择“HTML”或“HTML2”生成静态HTML文档

editor.swagger.io 使用 generator.swagger.io 生成 API 客户端、服务器存根和文档,generator.swagger.io 由开源项目Swagger Codegen 提供支持

于 2016-11-04T09:07:23.270 回答
9
  1. 下载https://github.com/swagger-api/swagger-ui - 感兴趣的文件夹是“ dist
  2. 将 Swagger JSON 复制到 dist 文件夹中
  3. 打开 index.html 并将文件底部标签内的 URL 的值更改为./swagger.json(或任何你的 swagger json 被调用)(见这里
  4. 主机上线!(或启动本地服务器以查看输出)。
于 2018-12-10T17:54:16.447 回答
4

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
于 2016-11-03T16:50:40.203 回答
2

您是否尝试将其导出以从不同的服务创建单个文档?如果是,另一种可能是https://github.com/varghgeorge/microservices-single-swagger。这个简单的 springboot 微服务将根据 YAML 配置在一个地方显示你所有的 swagger 文档(来自不同的服务器)。

于 2020-12-02T04:10:35.243 回答
0

另一个答案建议使用Swagger Editor ,这很棒。但是,要获取要导入的单个文件:

  1. npm install -g @apidevtools/swagger-cli
  2. swagger-cli bundle openapi.yaml --outfile ./openapi-expanded.json --type json

上面的命令假设你的根文件被命名openapi.yaml并且你想要一个输出 JSON 文件openapi-expanded.json:那个 JSON 就是你要导入的。

于 2021-10-04T13:59:12.200 回答