myway-mock
吾道-模拟API服务
”吾道“之模拟服务,该应用能实现模拟基于http协议的web服务,可用于模拟外部接口和内部未实现的接口服务。适用于前后端分离以及服务依赖之间的解耦。
帮助文档
quickstart 快速开始
advance 提高篇
deepin 深入篇
下载地址
最新版本-github下载地址
version 1.0.0
基于“吾道”(myway)的技术,实现对api服务的模拟。
“吾道” 三件套之一,三件套包括:myway-gateway,myway-mock、myway-datamanager。
myway-mock 是一个简单的高效基于服务端的mock解决方案,对于现有的代码逻辑不用因为服务是模拟的而需要特殊处理。
在实际开发中不会存在所谓的测试代码和正式代码,避免由于频繁的修改代码造成的质量问题。
我相信myway-mock会成为实际开发中不可多得的工具,
在实际很多场景中都会派得上用场。
例如:
- 某个服务由于多种原因只有生产环境,没有开发及测试环境
- 某个场景重现很复杂或不好重现的时候
- 依赖的某个服务由于资源等等原因,无法提供联调环境的时候
- 前后端分离,前端在内部做页面应用的时候,想要比较真实的交互调试的时候
- 搭建独立的稳定的单元验证调试环境,避免互相发版影响
- 性能压测
- 等等
特性列表
- 支持http请求方式
- GET请求
- POST请求
- PUT请求
- DELETE请求
- 支持参数形式
- 支持参数校验
- 内置常用的类型
- 日期 YYYY-MM-DD(年月日)
- 日期时间 YYYY-MM-DD hh:mm:ss(年月日时分秒)
- 整型
- 数字字符串格式
- 字符串
- 金额
- 浮点类型
- 手机号
- 字典
- 支持字典类型自定义,可以增加数据字典
- 支持根据输入参数值条件返回不同的数据
- 返回的数据支持变量,可以引用请求参数和内置参数
- 支持指定端口启动
- 支持yaml格式的api服务定义
- 支持监听多个端口,可以用于不同环境使用同一套模拟定义,不用多次部署
- 支持模拟耗时,支持设置多个耗时(毫秒)模拟,随机选取一个,来模拟服务器响应时长
- 支持设置网络最大延时设置,系统将根据设置的值进行模拟延时反馈
api服务定义模型说明
组成
一个需要被模拟的api由如下几部分构成
- url api访问的地址描述
- api说明
- 支持的访问方式(GET、POST、PUT、DEL)
- 参数形式(url-form、json、xml)
- 参数定义列表
- 参数名称
- 参数类型
- 是否必填
- 额外的校验规则,例如正则表达式校验
- 参数的长度要求
- 默认的返回数据
- 条件匹配定义(match)
额外的数据定义
- 数据ID
- 数据类型(text、json、html、xml)
- 内容
特别说明
出于对性能和资源的占用的考虑,额外的数据和api的定义单独设计。
api的定义存放于apis的目录下,数据存在datas目录下。
其中在datas目录使用api的名称作为子目录名,每个数据使用数据ID的名称命名。
举例如下
假设定义一个api叫“xxxapi”,其中定义了两条结果数据,一个叫 data1,一个叫data2
,那么数据文件和定义文件的存放位置如下所示。
api定义的yaml样例模板
详情见 example目录。其中 api.yaml为api的定义样例,data.yaml为返回数据的样例
未来特性计划
- 支持复杂请求对象(嵌套)参数的校验
- 自动热加载api定义文件,当文件变更后自动加载,不用重启mock应用
- 支持脚本来作为mock的响应处理
- 支持数据库查询结果,作为响应数据
- 支持“吾道”三件套的管理终端指令协议。通过管理工作台来完成mock特性的控制。