1. 程式人生 > >用NodeJs來mock web Api介面

用NodeJs來mock web Api介面

俺的部落格都來自工作,因此大部分也是圍繞找工作需要展開。雖然前段時間的目標是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 裡面會分享一些資深架構師錄製的視訊錄影:高併發、高效能、分散式、微服務架構的原理,分散式架構等這些成為架構師必備的知識體系。
在這裡插入圖片描述


引用連結

  1. 口袋程式碼倉庫
  2. 線上計算器
  3. 本節原始碼:github