基于Koa2写个脚手架模拟接口服务的方法


Posted in Javascript onNovember 27, 2018

ap-cli 前端模拟接口服务脚手架

项目地址

依据接口定义,帮助你快速的完成接口模拟工作。

主要功能:

  • [x] 通过json、js、swagger文件模拟接口数据
  • [x] 通过正则匹配指定需要mock的文件
  • [x] 生成简单markdown接口文档

开始

下载ap-cli

$ npm install ap-cli -g

创建data.json

[
 {
  "url": "/api/get/index",
  "method": "get",
  "response": {
   "name": "pc",
   "status": "success"
  }
 }
]

运行

$ ap-cli -m data.json

现在打开 http://localhost:3000/api/get/index ,你会得到

{ "name": "pc", "status": "success" }

同时会在当前文件目录生成一个简单的markdown接口文档

使用

1、通过js方式模拟数据

格式查看

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
};

运行

$ ap-cli -m data.js

查看接口

http://localhost:3000/api/get/userList

2、通过swagger文件模拟数据

这种方式主要是通过swagger生成一个xx_new.json文件,然后进行模拟数据

# 运行会生成一个swagger_new.json文件
$ ap-cli -s swagger.json
# 模拟数据
$ ap-cli -m swagger_new.json

通过正则匹配指定要模拟的文件

当前目录下有3个文件a1.json、a2.js、b1.js,你可以通过正则只模拟a1.json和a2.js文件的数据。

$ ap-cli -m all -r /^a/

CLI用法

# 缩写 完整 默认 说明
1 -m --mock [fileName] 'all' 模拟接口服务,[fileName]当前目录下要mock的文件名,[all]默认当前目录下的所有文件
2 -r --regexp [regexp] 通过正则匹配需要mock的文件
3 -s --swagger [fileName] 通过swagger生成json模板文件,[fileName]当前目录下的swagger文件名
4 -p --port [port] 3000 指定mock的端口

完整模板及说明

不管是json、js、swagger文件,最终都是转换成下面的格式进行处理。

示例

[
 {
  "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"
    }
   }
  }
 }
]

主要属性说明

# 字段 类型 说明 默认 是否必须 备注
1 summary string 接口概述 xxx接口
2 url string 接口地址 /api
3 method string http请求方式 get
4 parameters / 接口请求参数 可显示为表格(详见下1-1.parameters属性说明)
5 response / 接口响应数据

1-1. parameters属性说明

# 字段 类型 说明 默认 是否必须 备注
1 parsing boolean 是否解析 false
2 child object [] 子节点 子节点属性(详见1-1-1.child属性说明)

1-1-1. child属性说明

# 字段 类型 说明 默认 是否必须
1 key string 字段名称 -
2 type string 字段类型 string
3 description string 字段说明
4 required boolean 是否必须 false
5 child object [] 子节点数据

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
js 模拟气泡屏保效果代码
Jul 10 Javascript
人人网javascript面试题 可以提前实现下
Jan 05 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 Javascript
实现只能输入数字的input不用replace方法
Sep 12 Javascript
javascript实现复制与粘贴操作实例
Oct 16 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
Sep 26 Javascript
浅谈jQuery为哪般去掉了浏览器检测
Aug 29 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
详解React中setState回调函数
Jun 14 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
Vue实现移动端左右滑动效果的方法
Nov 27 #Javascript
vue2.0移动端滑动事件vue-touch的实例代码
Nov 27 #Javascript
详解vuex 渐进式教程实例代码
Nov 27 #Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
Nov 27 #Javascript
Node+OCR实现图像文字识别功能
Nov 26 #Javascript
图片文字识别(OCR)插件Ocrad.js教程
Nov 26 #Javascript
JS 验证码功能的三种实现方式
Nov 26 #Javascript
You might like
php5.3 注意事项说明
2013/07/01 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
jquery tools系列 expose 学习
2009/09/06 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
运动会口号霸气押韵
2015/12/24 职场文书
python自动化测试通过日志3分钟定位bug
2021/11/20 Python
Python绘画好看的星空图
2022/03/17 Python