在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、需求点 自己有时候写前端的时需要后端接口来实现联调,这个时候必须开启一个后端服务(一般都是在现有的后端服务里添加接口,因此启动很慢,毕竟已经是一个写了很多内容的大项目了),里面得写蛮多代码,很繁琐,而且如果接口数据改了还得修改代码重启,特别是SpringBoot这类很重的框架每次重启都很久; 后续百度了一下也有一些网站提供接口mock功能,但是都是要注册,而且网速巨慢,如果没网了还无法联调; 当然,用的如果是vue、angular之类的框架,它们是可以集成一些工具来实现模拟后端服务的,但是个人觉得不好用,因为它的实时性不好,也不够灵活,还得下载各种依赖什么的,跟前端项目也耦合; 基于上面的需求,用go写了一个跨平台的后端接口模拟器; 目前它支持指定服务地址,可以以项目为接口集,每个项目里又通过配置不同的接口,接口的返回数据又可以单独配置到文件,或者直接写在接口配置里也可以(数据量小的话); 而且支持文件动态监测,发现保存了文件会自动更新配置(目前没有写的很健壮,所以请完整修改配置后再保存,比如你的响应数据别写一半JSON就保存了) 二、使用方式: 我这边自己打包的是Linux平台的,大家可以自行打包为自己需要的平台(搜Go交叉编译,加些环境变量即可,如果不加则打包的就是自己编译所在平台的版本); 如果你有Python3.x,我这边已经写了一个pack.py脚本,运行它就能自动打包到项目的output目录里;(如果你不会的话也可以留言给我我帮你打包好给你) 打包后的zip文件内部结构为: 1.mock-projects目录,里面存放了各个项目的具体配置; 1.1.mock-projects/demo01目录,表示这个是用于配置demo01这个项目的接口集; 1.2.mock-projects/demo01/project.json文件,用于配置demo01这个项目有哪些接口,示例内容如下: { "prefix": "/demo01", "APIs": [ { "API": "/test01", "responseValue": { "name": "silentdoer是否" } }, { "API": "/test02", "responseRef": "responses/test02.json" } ] } 其中prefix值表示这个项目的url前缀是什么;APIs则是定义了有哪些具体接口,API是接口子路径,responseValue是表示这个接口的响应数据,而responseRef则是表示接口响应数据的配置文件路径; 1.3.mock-projects/demo01/responses目录存放了demo01项目接口的所有响应内容配置; 2.app.json用来配置有哪些项目,其内容为: { "autoRefresh": true, "mockProjects": [ { "name": "demo01ss", "path": "mock-projects/demo01" } ] } autoRefresh表示是否需要动态刷新,mockProjects配置所有的项目【可自行增减】; 3.readme.txt,说明文件 4.service_mocker,可执行文件,用于启动服务模拟器(可通过-a 'localhost:8888'参数来修改监听地址); 注意,上面的配置是可以实时更新的,但是要求改完全来再保存,别改一半就保存了,比如加projects,别"path"只写了"pat就保存了,我这边没做这么多的条件判定; 还有就是如果是Linux,最好是用vi来修改,用gedit之类的工具修改不知道为什么文件监听库会出问题。。(以后看看有没有更好的库) 三、项目: github地址:https://github.com/Silentdoer/service-mocker |
请发表评论