在團(tuán)隊(duì)開發(fā)中,一個(gè)好的 API 文檔可以減少很多交流成本,也可以使一個(gè)新人快速上手業(yè)務(wù)。
前言
swagger ui是一個(gè)API在線文檔生成和測試的利器,目前發(fā)現(xiàn)最好用的。
為什么好用?Demo 傳送門
支持API自動(dòng)生成同步的在線文檔
這些文檔可用于項(xiàng)目內(nèi)部API審核
方便測試人員了解API
這些文檔可作為客戶產(chǎn)品文檔的一部分進(jìn)行發(fā)布
支持API規(guī)范生成代碼,生成的客戶端和服務(wù)器端骨架代碼可以加速開發(fā)和測試速度
總結(jié)一句話就是好用,逼格高。下面我將總結(jié)一下如何快速在本地搭建一個(gè)基于Node和Swagger UI的 API 的文檔工具
環(huán)境搭建
下載Swagger UI(也可以直接下載 zip 文件)
gitclonehttps://github.com/swagger-api/swagger-ui.git
安裝 express
創(chuàng)建一個(gè)空文件夾node_app
mkdir node_app
初始化 node ,創(chuàng)建package.json文件()
?? ~ ? >cdnode_ap?? ~/node_app ? >npm init// 下面的看你心情填寫name: (node_app) node_appversion: (1.0.0)description:entry point: (index.js)testcommand:git repository:keywords:author:license: (ISC)
安裝 express
? ~/node_app git:(master) ? >npm install express --save
創(chuàng)建 index.js
?? ~/node_app git:(master) ? >vim index.js
把下面代碼貼如 index.js 中
varexpress =require('express');varapp = express();app.get('/',function(req, res){? res.send('Hello World!');});app.listen(3000,function(){console.log('Example app listening on port 3000!');});
在 node_app 中創(chuàng)建空目錄 public
?? ~/node_app git:(master) ? >mkdirpublic?? ~/node_app git:(master) ? >cdpublic
修改路由
?? ~/node_app/publicgit:(master) ? >vim ../index.js//在文件第三行插入下面這句話app.use('/static', express.static('public'));
把下載好的Swagger UI 文件中dist 目錄下的文件全部復(fù)制到 public 文件夾下。

目錄結(jié)構(gòu)
開啟 node
?? ~/node_app git:(master) ? >node index.js
打開瀏覽器,輸入http://localhost:3000/static/index.html
到此為止,你已經(jīng)把官方的 demo 在本地配置好了。當(dāng)然你也可以吧這個(gè)搭建在服務(wù)器上
編寫文檔并發(fā)布
使用Swagger Editor編寫 API 文檔
Swagger Editor 上的是基于 yaml 的語法,但是不用害怕,看著官方的 demo 看個(gè)10分鐘就會了。
導(dǎo)出 test.json 文檔

導(dǎo)出方式
把 test.json 放到 node_app/public 目錄下。
利用編輯器修改url = "http://petstore.swagger.io/v2/swagger.json";為url = "/static/test.json";
重啟 node 服務(wù),瀏覽器中打開http://localhost:3000/static/index.html就是你自己寫的 api 文檔了
效果圖

自己寫的 API 接口

PUT請求

GET請求

POST 請求

DELETE 請求
作者:Damonwong
鏈接:http://www.itdecent.cn/p/d6626e6bd72c
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。