我已经在以下目录下创建了一个带有yaml文件的Swagger文档:
yaml
api/swagger/swagger.yaml
现在我想分享一个静态的HTML文档及其定义,然而在swagger项目中声明,他们根本不打算支持HTML生成。如何从Swagger项目生成静态HTML文件?
ymzxtsji1#
我能想到的最简单的方法是使用Swagger Editor:1.转到:https://editor.swagger.io1.点击顶部菜单栏中的“文件”,然后选择“导入文件”1.导入后,单击顶部菜单栏中的“Generate Client”(生成客户端),然后选择“HTML”或“HTML2”生成静态HTML文档editor.swagger.io 使用generator.swagger.io生成API客户端、服务器存根和文档,generator.swagger.io由开源项目Swagger Codegen提供支持。
t40tm48m2#
1.下载https://github.com/swagger-api/swagger-ui-感兴趣的文件夹是“dist“1.将Swagger JSON复制到dist文件夹中1.打开index.html,将文件底部标记中URL的值更改为./swagger.json(或者任何swagger json的名称)(参见此处)1.主机联机!(或启动本地服务器以查看输出)。
./swagger.json
k4emjkb13#
swagger2markup-cli可以生成一个静态的adoc文件。确保您安装了Java运行时。(我使用Java(TM) SE Runtime Environment (build 1.8.0_111-b14))。你去拿jar:
adoc
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
然后,可以通过asciidoctor将该adoc文件转换为html文件:
asciidoctor
html
asciidoctor *.adoc
您可能需要安装它,因为我使用Ubuntu,我可以通过:
sudo apt-get -qq install asciidoctor
0yycz8jy4#
您是否尝试将其导出以从不同的服务创建单个文档?如果是的话,可以使用https://github.com/varghgeorge/microservices-single-swagger。这个简单的springboot微服务将根据YAML配置在一个位置显示所有的swagger文档(来自不同的服务器)。
kx7yvsdv5#
另一个答案建议使用Swagger Editor,这很好。但是,要获得一个文件导入到其中:
Swagger Editor
npm install -g @apidevtools/swagger-cli
swagger-cli bundle openapi.yaml --outfile ./openapi-expanded.json --type json
openapi.yaml
openapi-expanded.json
avwztpqn6#
使用如下HTML文件加载OpenAPI定义:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" href="//unpkg.com/swagger-ui-dist@3/swagger-ui.css"> <title>Your App API v1</title> <body> <div id="your-app-docs" /> <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script> <script> window.onload = function () { const ui = SwaggerUIBundle({ url: "openapi.yml", dom_id: "#your-app-docs", deepLinking: true, }) } </script> </body> </html>
然后,您可以稍后将其托管在本地,或者使用Netlify等服务将其托管在Web上。
6条答案
按热度按时间ymzxtsji1#
我能想到的最简单的方法是使用Swagger Editor:
1.转到:https://editor.swagger.io
1.点击顶部菜单栏中的“文件”,然后选择“导入文件”
1.导入后,单击顶部菜单栏中的“Generate Client”(生成客户端),然后选择“HTML”或“HTML2”生成静态HTML文档
editor.swagger.io 使用generator.swagger.io生成API客户端、服务器存根和文档,generator.swagger.io由开源项目Swagger Codegen提供支持。
t40tm48m2#
1.下载https://github.com/swagger-api/swagger-ui-感兴趣的文件夹是“dist“
1.将Swagger JSON复制到dist文件夹中
1.打开index.html,将文件底部标记中URL的值更改为
./swagger.json
(或者任何swagger json的名称)(参见此处)1.主机联机!(或启动本地服务器以查看输出)。
k4emjkb13#
swagger2markup-cli可以生成一个静态的
adoc
文件。确保您安装了Java运行时。(我使用
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
)。你去拿jar:
您可以通过以下方式使用它生成静态
adoc
:然后,可以通过
asciidoctor
将该adoc文件转换为html
文件:您可能需要安装它,因为我使用Ubuntu,我可以通过:
0yycz8jy4#
您是否尝试将其导出以从不同的服务创建单个文档?如果是的话,可以使用https://github.com/varghgeorge/microservices-single-swagger。这个简单的springboot微服务将根据YAML配置在一个位置显示所有的swagger文档(来自不同的服务器)。
kx7yvsdv5#
另一个答案建议使用
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。avwztpqn6#
使用如下HTML文件加载OpenAPI定义:
然后,您可以稍后将其托管在本地,或者使用Netlify等服务将其托管在Web上。