基于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 prev ~ siblings选择器使用介绍
Aug 09 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
Dec 30 Javascript
JavaScript拆分字符串时产生空字符的解决方案
Sep 26 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
Mar 02 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
Dec 26 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
微信小程序 加载 app-service.js 错误解决方法
Oct 12 Javascript
js实时获取窗口大小变化的实例代码
Nov 18 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
Dec 05 Javascript
关于Angular2 + node接口调试的解决方案
May 28 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
Vue 中获取当前时间并实时刷新的实现代码
May 12 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
最简单的PHP程序--记数器
2006/10/09 PHP
php 一元分词算法
2009/11/30 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
Python3里的super()和__class__使用介绍
2015/04/23 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
对python判断是否回文数的实例详解
2019/02/08 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
Linux的主要特性
2014/10/06 面试题
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
岗位职责范本
2013/11/23 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
导游词欢迎词
2015/02/02 职场文书
倡议书范文大全
2015/04/28 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python