基于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 相关文章推荐
javascript自定义右键弹出菜单实现方法
May 25 Javascript
JavaScript function函数种类详解
Feb 22 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
Jul 28 Javascript
jquery基本选择器匹配多个元素的实现方法
Sep 05 Javascript
JavaScript编写一个贪吃蛇游戏
Mar 09 Javascript
Angular2使用Angular CLI快速搭建工程(一)
May 21 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
Apr 28 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
Dec 03 Javascript
详解Vue源码之数据的代理访问
Dec 11 Javascript
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
详解vite2.0配置学习(typescript版本)
Feb 25 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制作静态网站的模板框架(一)
2006/10/09 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
js实现验证码干扰(动态)
2021/02/23 Javascript
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
2014年个人债务授权委托书范本
2014/09/22 职场文书
医院见习总结
2015/06/24 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript