1. 说明
sesame-http是一个用于模拟数据的http服务器。
2. 优点
- 便捷生成随机数,批量生成数组。减少每次调试需要去修改数据的次数
- 便捷的扩展随机数,可以快捷的自定义随机数
- 支持多种模拟数据方式 文件形式,规则拦截形式
- 缓存机制,仅当你修改了对应的模拟数据才会重新加载模拟数据,其余时刻使用缓存。
- 在页面上即可调试数据(todo)
3. 需求背景
如果你在项目开发模拟数据时,遇到如下问题,可以尝试使用sesame-http。
- 在调试各种数据的组合时,需要去不断修改数据。
- 不支持根据请求的数据来返回对应的返回。(例:请求带有对应cookie才返回成功,不带该cookie返回失败。)
- 不支持自定义的返回(携带cookie,修改response头部,修改状态码)
- 不便于拓展
4. 公司需求背景
公司内项目比较多,时间跨度比较大,不同项目可能有不同形式的接口。 例如:
- AC3000中接口是以请求的形式,(goform/getPassword,'getPassword("username=123")')
- AP项目中所有的接口都是通过(goform/modules)来获取的,根据携带参数的不同,来返回不同的值
- 家用这边请求是通过组合的形式来获取的(goform/modules&module1&module2)
- 其余产品可能各个请求的名称是不一样的
5. 需求分析
为了完成如上产品的兼容
- 请求拦截及返回需要极高的自由度
- 需要挂载在项目外部使用,不需要修改项目代码
- 需要兼容各种形式的数据返回(文件类型、规则类型)
Mock.js等模拟数据的库也不能够兼容公司已有的模拟数据方案。只好自己动手造轮子。
Inspired by Mock.js
6. 设计方案
设计思路 :
- sesame-http使用express作为服务器来拦截请求,可以外挂在webpack上,也可以单独使用。
- 采用websocket实现页面通信,从而实现再页面快捷修改假数据
- 建立随机数生成机制,附加在sesame-http上,可以快捷的生成和拓展随机数。