基于Koa2寫個腳手架模擬接口服務(wù)的方法
ap-cli 前端模擬接口服務(wù)腳手架
依據(jù)接口定義,幫助你快速的完成接口模擬工作。
主要功能:
- [x] 通過json、js、swagger文件模擬接口數(shù)據(jù)
- [x] 通過正則匹配指定需要mock的文件
- [x] 生成簡單markdown接口文檔
開始
下載ap-cli
$ npm install ap-cli -g
創(chuàng)建data.json
[ { "url": "/api/get/index", "method": "get", "response": { "name": "pc", "status": "success" } } ]
運(yùn)行
$ ap-cli -m data.json
現(xiàn)在打開 http://localhost:3000/api/get/index ,你會得到
{ "name": "pc", "status": "success" }
同時會在當(dāng)前文件目錄生成一個簡單的markdown接口文檔
使用
1、通過js方式模擬數(shù)據(jù)
格式查看
data.js
const getUserList = () => { const data = { "summary": "獲取用戶列表(get方式)", "url": "/api/get/userList", "method": "get", "parameters": "", "response": { "count": 100, "userList": [] } } for (let i = 0; i < 100; i++) { data.response.userList.push({ id: i, name: `user${i}` }) } return data }; module.exports = { getUserList };
運(yùn)行
$ ap-cli -m data.js
查看接口
http://localhost:3000/api/get/userList
2、通過swagger文件模擬數(shù)據(jù)
這種方式主要是通過swagger生成一個xx_new.json文件,然后進(jìn)行模擬數(shù)據(jù)
# 運(yùn)行會生成一個swagger_new.json文件 $ ap-cli -s swagger.json # 模擬數(shù)據(jù) $ ap-cli -m swagger_new.json
通過正則匹配指定要模擬的文件
當(dāng)前目錄下有3個文件a1.json、a2.js、b1.js,你可以通過正則只模擬a1.json和a2.js文件的數(shù)據(jù)。
$ ap-cli -m all -r /^a/
CLI用法
# | 縮寫 | 完整 | 默認(rèn) | 說明 |
---|---|---|---|---|
1 | -m | --mock [fileName] | 'all' | 模擬接口服務(wù),[fileName]當(dāng)前目錄下要mock的文件名,[all]默認(rèn)當(dāng)前目錄下的所有文件 |
2 | -r | --regexp [regexp] | 無 | 通過正則匹配需要mock的文件 |
3 | -s | --swagger [fileName] | 無 | 通過swagger生成json模板文件,[fileName]當(dāng)前目錄下的swagger文件名 |
4 | -p | --port [port] | 3000 | 指定mock的端口 |
完整模板及說明
不管是json、js、swagger文件,最終都是轉(zhuǎn)換成下面的格式進(jìn)行處理。
示例
[ { "summary": "獲取用戶信息接口json", "url": "/api/get/userinfo", "method": "post", "parameters": { "parsing": true, "child": [ { "key": "userid", "type": "string", "required": true, "description": "user id" } ] }, "response": { "body": { "id": "0001", "status": "success", "userinfo": { "name": "pc", "age": 18, "gender": "boy" } } } } ]
主要屬性說明
# | 字段 | 類型 | 說明 | 默認(rèn) | 是否必須 | 備注 |
---|---|---|---|---|---|---|
1 | summary | string | 接口概述 | xxx接口 | 否 | 無 |
2 | url | string | 接口地址 | /api | 是 | 無 |
3 | method | string | http請求方式 | get | 是 | 無 |
4 | parameters | / | 接口請求參數(shù) | 無 | 否 | 可顯示為表格(詳見下1-1.parameters屬性說明) |
5 | response | / | 接口響應(yīng)數(shù)據(jù) | 無 | 是 | 無 |
1-1. parameters屬性說明
# | 字段 | 類型 | 說明 | 默認(rèn) | 是否必須 | 備注 |
---|---|---|---|---|---|---|
1 | parsing | boolean | 是否解析 | false | 否 | 無 |
2 | child | object [] | 子節(jié)點(diǎn) | 無 | 否 | 子節(jié)點(diǎn)屬性(詳見1-1-1.child屬性說明) |
1-1-1. child屬性說明
# | 字段 | 類型 | 說明 | 默認(rèn) | 是否必須 |
---|---|---|---|---|---|
1 | key | string | 字段名稱 | - | 是 |
2 | type | string | 字段類型 | string | 是 |
3 | description | string | 字段說明 | 無 | 否 |
4 | required | boolean | 是否必須 | false | 否 |
5 | child | object [] | 子節(jié)點(diǎn)數(shù)據(jù) | 無 | 否 |
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js中的npm單獨(dú)與批量升級依賴包的方式超詳細(xì)講解
npm outdated僅檢查所有已安裝包的依賴關(guān)系,并將當(dāng)前版本遠(yuǎn)程倉庫中的最新版本進(jìn)行對比,不會升級,這篇文章主要介紹了Node.js中的npm單獨(dú)與批量升級依賴包的方式超詳細(xì)講解,需要的朋友可以參考下2024-02-02Node.js readline 逐行讀取、寫入文件內(nèi)容的示例
本篇文章主要介紹了Node.js readline逐行讀取、寫入文件內(nèi)容的示例,運(yùn)用readline逐行讀取的兩種實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03Express + Node.js實(shí)現(xiàn)登錄攔截器的實(shí)例代碼
本篇文章主要介紹了Express + Node.js實(shí)現(xiàn)攔截器的實(shí)例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07