基于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 相关文章推荐
用CSS+JS实现的进度条效果效果
Jun 05 Javascript
Linux下使用jq友好的打印JSON技巧分享
Nov 18 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
Mar 03 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
Apr 21 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
谈谈第三方App接入微信登录 解读
Dec 27 Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
最基础的vue.js双向绑定操作
Aug 23 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
node-red File读取好保存实例讲解
Sep 11 Javascript
js实现抽奖的两种方法
Mar 19 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
python实现bitmap数据结构详解
2014/02/17 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Python----数据预处理代码实例
2019/03/20 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
一个SQL面试题
2014/08/21 面试题
业务副厂长岗位职责
2014/01/03 职场文书
婚庆司仪主持词
2014/03/15 职场文书
婚前协议书范本
2014/04/15 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
详解 TypeScript 枚举类型
2021/11/02 Javascript