什么是 Decoy?
什么是 Decoy?
Decoy 是一款强大且直观的原生 macOS 应用,专为需要轻松创建和管理本地 Mock Server 的开发者而设计。它通过提供一个简单的、无需设置的环境,简化了模拟 API 端点、测试 Webhook 集成和调试网络相关代码的过程。与通常涉及复杂配置、Docker 容器或云端隧道服务的传统方法不同,Decoy 可在您的 Mac 上提供即时启动的体验。
Decoy 采用 SwiftUI 和 Network.framework 等现代 macOS 技术构建,针对性能和资源效率进行了优化。它能即时启动,消耗最少的内存,并允许实时更改 Mock 响应,确保无缝的开发工作流程。无论您是构建新应用、集成第三方服务,还是测试网络故障和超时等边缘情况,Decoy 都提供了加速开发周期所需的灵活性和控制力。
主要功能
- 轻松创建 Mock Server:使用自定义方法、路径定义端点,并将它们分组到项目中以便更好地组织。
- 实时请求监控:查看所有传入请求的详细信息,包括标头、正文、源 IP 和时间戳。JSON 负载会自动格式化以便阅读。
- 灵活的响应 Mocking:使用任何 HTTP 状态码配置响应,从 7 种不同的正文类型(纯文本、JSON、HTML、XML、文件、空、重定向)中选择,设置自定义标头,并模拟延迟。
- 参数化路径:支持
/users/:id等动态路径以匹配各种请求参数。 - 多种响应正文类型:轻松提供 JSON、HTML、XML、纯文本、文件(图像、PDF)、空响应或执行重定向。
- 即时更改:对端点或响应的修改会在下一个传入请求时立即生效。
- 请求导出:将请求详细信息复制为 cURL、JavaScript
fetch或 Ruby 代码片段,以便于调试和共享。 - 自动 CORS 处理:自动添加 CORS 标头,确保基于浏览器的请求无缝工作。
- 文件响应:直接将静态文件作为响应提供。
- 原生 macOS 体验:使用 SwiftUI 构建,应用快速、响应迅速且内存效率高。无需 Docker、云隧道或复杂的配置文件。
- 项目分组:在自定义子域下组织端点(例如
api.decoy.my)。 - 响应快照:查看为每个请求发送的确切响应。
- 自定义域名:使用默认域名,如
decoy.my或lvh.me,或配置您自己的域名。 - 详细请求检查:检查每个请求的标头、正文(二进制数据的十六进制转储)、源 IP、时间戳和唯一 UUID。
- 重定向支持:轻松配置 301、302、307 和 308 重定向,并自动处理
Location标头。 - 持久化存储:请求保存到 SQLite 数据库,确保即使应用意外退出也不会丢失数据。
如何使用 Decoy
开始使用 Decoy 的过程设计得非常简单:
- 安装 Decoy:从 Mac App Store 下载并安装 Decoy。
- 创建项目:启动 Decoy 并创建一个新项目。您可以分配自定义子域(例如
myapi)或使用默认的decoy.my域名。 - 定义端点:在项目中添加新端点。指定 HTTP 方法(GET、POST、PUT、DELETE 等)和路径(例如
/users、/products/:id)。 - 配置响应:为每个端点定义所需的响应。选择状态码,选择正文类型(JSON、文本、文件等),添加任何必要的标头,并选择性地设置延迟以模拟网络延迟。
- 指向您的应用程序:将您的应用程序、脚本或服务配置为向 Decoy 提供的地址发送请求(例如
http://myapi.decoy.my:8998)。 - 监控和调试:当请求进来时,Decoy 将实时显示它们。您可以检查传入请求的所有详细信息,并验证发送的响应。
- 迭代:即时对端点配置或响应进行更改。Decoy 会立即应用这些更改,从而实现快速迭代和调试。
用例
- API 开发与测试:在前端开发过程中模拟后端 API 响应,使团队能够并行工作,而无需等待后端完成。测试各种响应场景,包括错误代码和边缘情况。
- Webhook 集成测试:通过设置 Decoy 来本地接收和检查来自 Stripe、GitHub 或 Slack 等第三方服务的 Webhook 有效负载,轻松测试您的应用程序如何处理传入的 Webhook。
- 移动应用开发:为移动应用程序模拟网络请求,以测试 UI 行为、离线场景和错误处理,而无需依赖实时后端。
- 测试网络弹性:通过在 Decoy 的响应中引入延迟来模拟慢速网络条件或超时,有助于构建能够优雅处理延迟的更健壮的应用程序。
- 爬虫和机器人开发:通过提供来自本地 Mock Server 的可预测响应来测试与 Web 服务交互的爬虫或机器人。
常见问题解答
-
Decoy 的系统要求是什么? Decoy 需要 macOS 14 Sonoma 或更高版本。
-
Decoy 是免费的吗? Decoy 是一款付费应用程序,可在 Mac App Store 上购买,价格为 24.99 欧元。
-
我需要 Docker 或 Node.js 才能使用 Decoy 吗? 不需要,Decoy 是一款独立的、原生的 macOS 应用程序。其核心功能不需要 Docker、Node.js 或任何其他外部运行时环境。
-
Decoy 可以处理 HTTPS 请求吗? 目前,Decoy 主要关注 HTTP 请求。对于 HTTPS Mocking,通常需要配置反向代理或使用其他工具集。
-
请求是如何存储的? 传入的请求会保存到本地 SQLite 数据库,确保即使应用程序意外关闭,您的请求历史记录也会得到保留。
替代品
HTTPie AI
HTTPie AI 2.0与聊天功能是一款创新工具,旨在提升开发者与API的互动方式。
AakarDev AI
AakarDev AI 是一个强大的平台,通过无缝的向量数据库集成简化 AI 应用程序的开发,实现快速部署和可扩展性。
Arduino VENTUNO Q
Arduino VENTUNO Q:强大的边缘 AI 计算机,赋能机器人与 AI 应用。双核架构,实时感知与决策。
Devin
Devin 是一个 AI 编码代理和软件工程师,帮助开发者更快地构建更好的软件。
imgcook
imgcook 是一款智能工具,只需单击一下即可将设计稿转换为高质量、可投入生产的代码。
Rork
Rork 使用 AI 和 Expo (React Native) 从您的描述构建完整的、可投入生产的移动应用程序。