
Security News
New Website “Is It Really FOSS?” Tracks Transparency in Open Source Distribution Models
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
一个简单的 API Mock Server,让你脱离后端进行高效的接口数据测试,同时无需侵入客户端代码
在命令行运行:
$ [sudo] gem install doraemon
等待安装完成
将 API 地址 path 部分中的斜杠(/)替换为下划线(_),并追加文件扩展名(.rb / .json / .api 均可)
例如:v4/homepage/recommend 接口的 Mock 文件就是 v4_homepage_recommend.rb
在 Mock 文件所在目录运行
$ doraemon
此时可以看到 doraemon 已经将目录下所有 Mock 文件载入
[~/api] ls
v3_homepage_tiger_list.rb v4_homepage_recommend.rb
[~/api] doraemon
/v4/homepage/recommend => v4_homepage_recommend.rb
/v3/homepage/tiger/list => v3_homepage_tiger_list.rb
......
打开手机浏览器,访问 doraemon 的 4001 端口,即可下载安装 SSL 证书
将测试设备的代理设置到 doraemon 的端口上(默认 4000)
假设我们想测试首页搜索栏中的提示文案,涉及 v3/word/default接口 创建 v3_word_default.rb 文件,内容如下:
{
"code": 0,
"res": {
"id": 2018050924,
"hintWord": "天王盖地虎",
"word": "宝塔镇河妖"
},
"msg": "请求已成功处理"
}
切换 tab 至首页,可以看到上方搜索栏的提示文案已被 Mock 数据替代
假设我们想测试优惠券兑换相关流程,涉及 v4/activity/coupon/code/exchange 接口 创建 v4_activity_coupon_code_exchange.rb 文件,内容如下:
# 通过 _params 变量访问请求的参数
correct = _params['exchageCode'] == 'abc123'
{
'code': correct ? 0 : -1,
'msg': correct ? '兑换成功' : '兑换码无效'
}
这样,当我们输入兑换码 abc123 进行验证,将会返回成功的数据,其他情况均为失败的结果
假设我们想调试个我的页面的会员信息展示,涉及 v2/users/center 接口 创建 v2_users_center.rb 文件,内容如下:
# 通过 _result 变量访问原始的返回数据
_result['res']['level'] = 3
_result['res']['score'] = 666666
_result
切换到我的页面,可以发现等级已经被改写成 3,分数被改为 66666,如果想测试其他等级的数据,直接修改保存即可。
⚠️ 所有 Mock 数据文件最后一个表达式必须是这个文件的返回值,比如例3中,如果缺额少最后一行的 _result,那该文件返回的就是最后那句赋值表达式的值(即666666)
$ doraemon --port=5000
这时 API 监听端口就是5000,而证书下载的端口再加1也就是5001
$ doraemon --root=~/api
指定工作目录为 ~/api,可以在这个目录下维护一些测试 API 文件
API 的修改是支持热重载的,即修改文件内容无需重启服务。但增加 API 文件是需要重启的,后期必要的话可以添加更完善的热重载机制
iOS 端可以通过 Shadowrocket 创建一个 Today Widget 快速切换是否 Mock,不过这个工具是收费的
使用时可以固定一个 api 目录(假设 ~/api),这时你可以在 .bash_profile 中增加一行
alias mock='doraemon --root=~/api --port=4000'
然后运行以下命令
$ source ~/.bash_profile
以后只要打开 Terminal 执行命令 mock 就可以开始以 ~/api 为工作目录进行数据 mock 了
FAQs
Unknown package
We found that doraemon demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.