[英]How to generate a static html file from a swagger documentation?
我創建了一個 Swagger 文檔,其中包含一個yaml
文件,位於:
api/swagger/swagger.yaml
現在我想分享一個 static HTML 文檔及其定義,但在swagger 項目上聲明,他們根本不打算支持 HTML 生成。
如何從 Swagger 項目生成 static HTML 文件?
我能想到的最簡單的方法是使用Swagger Editor :
editor.swagger.io 使用 generator.swagger.io 生成 API 客戶端、服務器存根和文檔,generator.swagger.io 由開源項目Swagger Codegen 提供支持。
./swagger.json
(或任何您的 swagger json 調用)(請參閱此處)有可以生成靜態adoc
文件的swagger2markup-cli 。
確保您已安裝 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
然后可以通過asciidoctor
adoc 文件轉換為html
文件:
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
並且您想要一個 output JSON 文件openapi-expanded.json
:您將導入 JSON。
使用這樣的 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 上托管它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.