Skip to content

Mock Server

StruggleYang edited this page Jan 11, 2019 · 2 revisions

背景

在业务系统开发过程中,往往存在前端页面开发快后端服务接口开发慢,从而造成前端等后端联调的情况。

为更好的践行前后端分离的开发实践,拟设计MockServer,在收到前端请求后,根据一定的规则返回接口模拟数据。

需求

  • 支持基于http rest的请求
  • 模拟数据可配置
  • 模拟数据规则可配
  • 模拟数据需入库
  • 支持延时响应
  • 支持thrift协议请求

其中,匹配规则:

  • 支持根据method字段匹配 (get/post/put/delete)
  • 支持根据header字段匹配
  • 支持根据parameter字段匹配
  • 支持根据请求体做规则匹配

版本规划

0.0.1版本

原型验证版,此版本只需实现最基本的功能即可(例如规则可直接硬编码)。 要求支持如下特性

  • 基于netty,支持http rest请求
  • 实现请求Json跟规则的匹配引擎

0.0.1版本

  • 支持规则数据管理/入库
  • 支持其它匹配规则
  • 支持延时响应

0.0.2版本

  • 支持web-gui的方式去管理规则数据

1.0.0版本

  • 支持thrift协议

数据模型

t_rule

序号 字段名 类型 备注
1 id int(11) id主键
2 serviceName varchar(255) 服务全限定名
3 version varchar(10) 服务版本号
4 method varchar(128) 接口方法
5 http_method tinyint(2) http method type, default post,1:post(post);2:get(get);3:put(put);4:delete(delete)
5 headers varchar(512) header规则,空格隔开多个header,它们是and的关系,例如a=b c=d
6 parameters varchar(512) parameter规则,空格隔开多个parameter,它们是and的关系,例如a=b c=d
7 cookies varchar(512) cookie规则,空格隔开多个cookie,它们是and的关系,例如a=b c=d
8 req text 请求规则
9 resp text 模拟数据
10 delay int 延迟时间,默认0,马上返回