用NodeJs來mock web Api介面
阿新 • • 發佈:2018-12-07
俺的部落格都來自工作,因此大部分也是圍繞找工作需要展開。雖然前段時間的目標是Go lang,但是工作中一定要考慮下效率,因此,mock Api的事情暫時先用nodejs搞定吧,這個比較熟!
1、環境
nodejs安裝可以參考上一部落格。
node -v
npm -v
返回既定版本號,就說明安裝已經成功了。
2、建立web服務
mkdir myapp
cd myapp
npm init # 一路回車
安裝Express
npm install express --save
先寫個簡單的web服務
const express = require('express')
const app = express();
const port = 3000;
app.get('/',(req,res) => res.send('mock api'));
app.listen(port,()=> console.log(`api listening on port ${port}`));
就是這麼簡單~~~
3、開始mock
因為有個地方需要處理時間,因此增加moment包
npm install moment --save-dev
程式碼如下
// 增加access_token 介面mock
app. post('/access_token',(req,res) => {
res.charset = 'utf-8';
res.set('Content-Type', 'application/json');
req = req || {};
req.client_id = req.client_id || '';
req.client_secret = req.client_secret || '';
req.username = req.username || '';
req.password = req.password || '';
req. timestamp = req.timestamp || '';
req.sign = req.sign || '';
req.scope = req.scope || '';
if(req.client_id.trim() == '' ||
req.client_secret.trim() == '' ||
req.username.trim() == '' ||
req.password.trim() == '' ||
req.sign.trim() == '' ){
res.send({
success: false,
resultMessage:'引數有誤',
result:{
},
resultCode:1001
});
return;
}
var curr = Date.now();
var mm = moment(curr);
var mm2= moment(curr).add(1,'day');
res.send({
success: true,
resultMessage:'',
result:{
access_token:'1234567890',
time: mm.format('YYYY-MM-DD HH:mm:SS'),
expire_in : mm2.format('YYYY-MM-DD HH:mm:SS')
},
resultCode:null
});
});
// 再mock一個push order介面
app.post('/sendDeliveryStatus',(req,res) => {
res.charset = 'utf-8';
res.set('Content-Type', 'application/json');
req = req || {};
req.token = req.token || '';
req.parameters = req.parameters || {};
if(req.token.trim() != '1234567890' ){
res.send({
success: false,
resultMessage:'auth invalid',
result:{
},
resultCode:5001
});
return;
}
res.send({
success: true,
resultMessage:'',
result:{
},
resultCode:null
});
});
順便說下,moment類真心好用,處理時間全靠它了!!!
4、執行和測試
node index.js
執行後看到api listening on port 3000,直接訪問看到mock api,就一切ok,如果直接訪問什麼也看不到,請檢查下liunx伺服器上的防火牆設定,開啟3000埠即可。
測試推薦採用postman工具,方便快捷!!!
在此我向大家推薦一個微服務架構學習交流群。交流學習QQ群號:864759589 裡面會分享一些資深架構師錄製的視訊錄影:高併發、高效能、分散式、微服務架構的原理,分散式架構等這些成為架構師必備的知識體系。