克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

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请求
  • 支持参数形式
    • url-form
    • json
    • xml
  • 支持参数校验
    • 必填
    • 可选
  • 内置常用的类型
    • 日期 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
额外的数据定义
  • 数据ID
  • 数据类型(text、json、html、xml)
  • 内容

特别说明

出于对性能和资源的占用的考虑,额外的数据和api的定义单独设计。 api的定义存放于apis的目录下,数据存在datas目录下。
其中在datas目录使用api的名称作为子目录名,每个数据使用数据ID的名称命名。

举例如下

假设定义一个api叫“xxxapi”,其中定义了两条结果数据,一个叫 data1,一个叫data2 ,那么数据文件和定义文件的存放位置如下所示。

  • myway-mock所在目录
    • apis
      • xxxapi.yaml
    • datas
      • xxxapi
        • data1.yaml
        • data2.yaml

api定义的yaml样例模板

详情见 example目录。其中 api.yaml为api的定义样例,data.yaml为返回数据的样例

未来特性计划

  • 支持复杂请求对象(嵌套)参数的校验
  • 自动热加载api定义文件,当文件变更后自动加载,不用重启mock应用
  • 支持脚本来作为mock的响应处理
  • 支持数据库查询结果,作为响应数据
  • 支持“吾道”三件套的管理终端指令协议。通过管理工作台来完成mock特性的控制。
MIT License Copyright (c) 2020 aosfather Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

”吾道“之模拟服务,该应用能实现模拟基于http协议的web服务,可用于模拟外部接口和内部未实现的接口服务。适用于前后端分离以及服务依赖之间的解耦。 展开 收起
Go
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化