swagger,一款api測試工具,詳細介紹參考官網:http://swagger.io/ ,這里主要記錄下怎么將swagger api應用到我們的node服務中:
1、任意新建node api項目,使用npm init即可
2、安裝依賴:
cnpm i express body-parser --save
其中express作為api框架,當然你也可以使用其它的,比如thinkjs、koa、koahub、阿里的egg等等(框架只是一種工具),body-parser用來解析json格式的請求。
3、新建index.js作為服務類,簡單代碼如下:
var express = require("express"); var app = express(); var routes = require('./routes/index'); var bodyParser = require('body-parser'); app.use(bodyParser.json()); // for parsing application/json app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded app.use("/static", express.static("public")); //配置swagger文檔 routes(app); app.listen(3000, function() { console.log("server listening at port 3000"); });
這里的話,我們設置靜態目錄為public,路由文件為routes文件夾下的index.js文件,那么響應地創建兩個文件夾,分別為:public(用來存放swagger文件)、routes(存放各種路由請求)。
4、下載swagger必須文件並解壓到public下
下載地址為:https://github.com/swagger-api/swagger-ui 這里取dist文件夾下的所有文件直接放入public里面,在打開該網址:http://editor.swagger.io/#!/ 點擊如下下載json配置文件(命名隨意):
這樣一來,public目錄下面的文件結構類似如下:
5、修改public目錄下的index.html文件的url為剛才的json文件名稱
6、啟動node服務,打開public下的index.html,在瀏覽器端查看效果
最后:
1、想要api文檔顯示如何內容可直接編輯下載來的json文件即可,這里推薦一個網站:http://www.sosoapi.com/ 可以直接在線編輯swagger api文檔,支持在線預覽、導出等功能,比較方便
2、使用swagger在線測試的時候一定要主要跨域問題,否則可能導致實際已經發送了請求但是瀏覽器查看時卻顯示“no content”,這時瀏覽器的concole一定打印了跨域失敗提示,解決有很多種,比如:服務端設置跨域請求頭信息、瀏覽器允許跨域等
3、demo地址戳這里:https://github.com/caiya/node_app