基于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 04 Javascript
用JS实现一个TreeMenu效果分享
Aug 28 Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 Javascript
Angularjs中使用Filters详解
Mar 11 Javascript
jquery validation验证表单插件
Jan 07 Javascript
JavaScript生成指定范围的时间列表
Mar 19 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 Javascript
Vue弹出菜单功能的实现代码
Sep 12 Javascript
vue路由对不同界面进行传参及跳转的总结
Apr 20 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
Jun 01 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 Javascript
前端如何实现动画过渡效果
Feb 05 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/02 无线电
MySQL授权问题总结
2007/05/06 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
实例浅析js的this
2016/12/11 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
浅析Python中else语句块的使用技巧
2016/06/16 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
Python模块相关知识点小结
2020/03/09 Python
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
酒店服务实习自我鉴定
2013/09/22 职场文书
留学推荐信范文
2014/05/10 职场文书
优秀班组长事迹
2014/05/31 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
健康状况证明书
2014/11/26 职场文书
写给导师的自荐信
2015/03/06 职场文书
应收账款管理制度
2015/08/06 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python