添加swagger api文檔到node服務


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM