基于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 import css实例代码
Jul 18 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
Jan 04 Javascript
在js文件中如何获取basePath处理js路径问题
Jul 10 Javascript
深入浅析react native es6语法
Dec 09 Javascript
js实现不重复导入的方法
Mar 02 Javascript
vue项目中使用tinymce编辑器的步骤详解
Sep 11 Javascript
使用JavaScript解析URL的方法示例
Mar 01 Javascript
vue缓存的keepalive页面刷新数据的方法
Apr 23 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
Nov 05 Javascript
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 Vue.js
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 Google的translate API代码
2008/12/10 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php分页函数完整实例代码
2014/09/22 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
jQuery each()小议
2010/03/18 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
实例讲解python函数式编程
2014/06/09 Python
跟老齐学Python之做一个小游戏
2014/09/28 Python
Python输出各行命令详解
2018/02/01 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
经理管理专业毕业自荐书范文
2014/02/12 职场文书
优秀员工获奖感言
2014/03/01 职场文书
企业诚信承诺书
2014/05/23 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
nginx安装以及配置的详细过程记录
2021/09/15 Servers
JavaScript 对象创建的3种方法
2021/11/17 Javascript
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS
Python中的socket网络模块介绍
2022/07/23 Python