Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

doraemon

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

doraemon

  • 1.0.17
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Doraemon

一个简单的 API Mock Server,让你脱离后端进行高效的接口数据测试,同时无需侵入客户端代码

安装

在命令行运行:

$ [sudo] gem install doraemon

等待安装完成

使用方法

1. 创建 Mock 文件

将 API 地址 path 部分中的斜杠(/)替换为下划线(_),并追加文件扩展名(.rb / .json / .api 均可)

例如:v4/homepage/recommend 接口的 Mock 文件就是 v4_homepage_recommend.rb

2. 启动 doraemon

在 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
......

3. 安装 SSL 证书(如需调试 HTTPS 接口)

打开手机浏览器,访问 doraemon 的 4001 端口,即可下载安装 SSL 证书

4. 测试设备连接代理

将测试设备的代理设置到 doraemon 的端口上(默认 4000)

使用案例

例1. 直接 Mock JSON 数据

假设我们想测试首页搜索栏中的提示文案,涉及 v3/word/default接口 创建 v3_word_default.rb 文件,内容如下:

{
  "code": 0,
  "res": {
    "id": 2018050924,
    "hintWord": "天王盖地虎",
    "word": "宝塔镇河妖"
  },
  "msg": "请求已成功处理"
}

切换 tab 至首页,可以看到上方搜索栏的提示文案已被 Mock 数据替代

例2. 操作请求参数

假设我们想测试优惠券兑换相关流程,涉及 v4/activity/coupon/code/exchange 接口 创建 v4_activity_coupon_code_exchange.rb 文件,内容如下:

# 通过 _params 变量访问请求的参数
correct = _params['exchageCode'] == 'abc123'
{
  'code': correct ? 0 : -1,
  'msg': correct ? '兑换成功' : '兑换码无效'
}

这样,当我们输入兑换码 abc123 进行验证,将会返回成功的数据,其他情况均为失败的结果

例3. 获取原始返回数据

假设我们想调试个我的页面的会员信息展示,涉及 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 文件

Tips:

  1. API 的修改是支持热重载的,即修改文件内容无需重启服务。但增加 API 文件是需要重启的,后期必要的话可以添加更完善的热重载机制

  2. iOS 端可以通过 Shadowrocket 创建一个 Today Widget 快速切换是否 Mock,不过这个工具是收费的

  3. 使用时可以固定一个 api 目录(假设 ~/api),这时你可以在 .bash_profile 中增加一行

alias mock='doraemon --root=~/api --port=4000'

然后运行以下命令

$ source ~/.bash_profile

以后只要打开 Terminal 执行命令 mock 就可以开始以 ~/api 为工作目录进行数据 mock 了

FAQs

Package last updated on 31 May 2023

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc