使用mitmproxy作为中间抓包层。
增加DSL书写本地Restful API Mapper
支持自动重载。
- 确认系统中是否有
Python3+
Ruby2.7+
- 确认安装 mitmproxy
mac
brew install mitmproxy
pip3 install mitproxy
- 安装Ruby依赖
如果没有安装 bundle 安装
gem install bundler
安装依赖
bundle install
- 书写本地接口
约定在 local_proxy 文件夹中 使用 xxx.api.rb 的模式新建文件。
文件中接口DSL形如
get '/keyword/of/path' do
{
"result": {
"errno": "OK",
"errmsg": "成功"
},
"data": {
"details": [
{
"id": 123,
"nick": "Hello",
}
]
}
}
end
post '/keyword/of/path' do
{
"result": {
"errno": "OK",
"errmsg": "成功"
},
"data": {
"details": [
{
"id": 123,
"nick": "Hello",
}
]
}
}
end支持方法有
:get,:post, :patch, :put, :delete, :head, :options
- 可以使用的命令
执行 rake 可以查看提供的工作列表
- 启动编译DSL的 watch服务
rake run 或者 rake r
当你不断地书写 接口的DSL,服务将回归自动转换为中间JSON文件,在 ./build/mock_api.json 可查看
- 启动 mitmproxy 服务
命令行界面
rake mitmproxy 或者 rake m
如果想要启动 web ui
rake mitmweb 或者 rake mw
mitmproxy 会自动检查,mock_api.json ,当请求路径 包含 配置路径的时,方法匹配会进入捕捉阶段,返回配置的返回。
- 两个服务启动,发生联动
启动两个server。可以实现 书写DSL->热更新翻译JSON-> MITM中间层 本地Mapper热更新 从而实现热更新 本地Mapper数据的server。
方便测试测试接口。