基于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 相关文章推荐
传智播客学习之java 反射
Nov 22 Javascript
jQuery源码中的chunker 正则过滤符分析
Jul 31 Javascript
HTML Color Picker(js拾色器效果)
Aug 27 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
javascript弹出页面回传值的方法
Jan 28 Javascript
推荐10 款 SVG 动画的 JavaScript 库
Mar 24 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
fullCalendar中文API官方文档
Feb 07 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
微信小程序 生命周期函数详解
May 24 Javascript
微信小程序实现日历效果
Dec 28 Javascript
angular4应用中输入的最小值和最大值的方法
May 17 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
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
php导出CSV抽象类实例
2014/09/24 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
用实例分析Python中method的参数传递过程
2015/04/02 Python
Python中动态创建类实例的方法
2017/03/24 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
python使用udp实现聊天器功能
2018/12/10 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
外国语学院毕业生自荐信
2013/10/28 职场文书
25岁生日感言
2014/01/13 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
妇产科护理心得体会
2016/01/22 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android
讨论nginx location 顺序问题
2022/05/30 Servers