基于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 相关文章推荐
求解开jscript.encode代码的asp函数
Feb 28 Javascript
初学JavaScript第二章
Sep 30 Javascript
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
Apr 24 Javascript
jquery 简单导航实现代码
Sep 11 Javascript
jquery 插件学习(四)
Aug 06 Javascript
js实现九宫格图片半透明渐显特效的方法
Feb 16 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
很棒的js选项卡切换效果
Jul 15 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
微信小程序getPhoneNumber获取用户手机号
Sep 29 Javascript
Vue.directive使用注意(小结)
Aug 31 Javascript
微信小程序的mpvue框架快速上手指南
May 15 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
长波有什么东西
2021/03/01 无线电
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
phpMyAdmin 安装及问题总结
2009/05/28 PHP
php读取html并截取字符串的简单代码
2009/11/30 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Python基本socket通信控制操作示例
2019/01/30 Python
python3实现高效的端口扫描
2019/08/31 Python
Python time库基本使用方法分析
2019/12/13 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
详解python的变量缓存机制
2021/01/24 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
国贸专业的职业规划书
2014/03/15 职场文书
公司委托书格式范本
2014/09/16 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
培根随笔读书笔记
2015/07/01 职场文书
贷款担保书范本
2015/09/22 职场文书
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记