Dev Proxy 是一种 API 模拟器,可帮助你在正常路径之外轻松测试应用。
测试应用以确保其按预期工作。 但是,如果使用的 API 失败,该怎么办? 你的应用是否会丢失客户的数据? 如何对此进行测试? 模拟 API 失败是很难的。 你最终会编写那些不会发布的代码,或者更糟:根本不测试。 因此,我们构建了 Dev Proxy,以模拟 API 错误,以便无需更改代码即可轻松测试应用。
使用 Dev Proxy,可以:
- 查看应用如何响应 API 错误,而无需更改应用的代码,以便可以 生成更可靠的应用,而不会丢失客户的数据。
- 验证应用如何处理 API 速率限制,以便避免受到限制并改善客户的用户体验。
- 了解应用如何处理速度缓慢的 API,以便实现必要的交互支持,并使 应用更加用户友好。
- 无需编写任何代码即可快速建立模拟 API,以便你可以 专注于构建应用,而不是编写不会发布的代码。
- 根据 API 使用情况提供的情境化指导来改进应用,使应用变得更好。
Dev Proxy 是可在任何平台上工作的命令行工具。 由于它截获了网络请求,因此它适用于任何类型的应用和技术堆栈。 Dev Proxy 是开源且可免费使用的。
谁适合使用开发代理?
开发代理可帮助以下开发人员:
- 构建调用 API 的应用 - 测试应用如何处理 api 的错误和速率限制,例如 GitHub、OpenAI 和 Anthropic,而无需更改代码
- 使用 Microsoft Graph 生成应用 - 获取有关权限和最佳做法的指导
- 设计 API - 实现前的原型和模拟 API
- 自动化测试 - 将混沌测试集成到 CI/CD 管道中
何时使用Dev代理
在以下情况下使用开发代理:
- 在不修改应用程序代码的情况下测试 API 复原能力
- 使用任何技术堆栈(浏览器、Node.js、.NET、Python 等)
- 模拟不控制的 API 的故障
- 获取有关 Microsoft Graph 最佳做法的指导
- 在 CI/CD 管道中自动执行混沌测试
在以下情况下,请考虑其他方法:
- 只需对前端单元测试进行浏览器内模拟
- 你正在构建 API,需要契约测试
- 你需要以编程方式修改请求/响应正文(开发人员代理可以执行此作,但专用工具可能更简单)
场景快速入门
根据要完成的内容选择路径:
| 你希望做什么? | Time | Guide |
|---|---|---|
| 测试我的应用程序处理 API 错误 | 5 分钟 | 使用随机错误进行测试 |
| 测试我的应用处理 GitHub API 速率限制 | 15 分钟 | 测试GitHub API 速率限制 |
| 测试我的应用是否能处理 OpenAI 速率限制 | 10 分钟 | 测试 OpenAI 速率限制 |
| 模拟尚不存在的 API | 10 分钟 | 模拟 CRUD API |
| 检查我的Microsoft Graph 权限 | 10 分钟 | 检测最小权限 |
| 了解我的应用调用的 API | 5 分钟 | 查找要观看的 URL |
| 在 CI/CD 中自动执行 API 测试 | 15 分钟 | 在 CI/CD 中使用开发代理 |
修复 API 问题
从 API 收到错误,或者在构建 AI 应用或代理时出错? 从问题开始:
- 错误和限制:429 请求过多、Retry-After、500、502、503 和 504 错误,GitHub API 速率限制超出,已达到 OpenAI 速率限制,Anthropic 529 overloaded_error,.NET HttpClient 超时
- AI 应用和代理:LLM 速率限制、验证你的编码代理编写的错误处理、测试 AI 代理在工具失败时执行的操作、测试你的 AI 代理是否会受到工具响应中的提示注入影响
使用预设试用
预设是特定 API 的现成 Dev Proxy 配置。 若要查看应用如何处理它调用的 API 的速率限制和错误,请首先安装 Dev Proxy。
winget install DevProxy.DevProxy --silent
安装完成后,打开新的命令提示符,以便识别更新后的 PATH。
brew tap dotnet/dev-proxy
brew install dev-proxy
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
接下来,下载 API 的预设。
| API | 命令 |
|---|---|
| GitHub | devproxy config get github-rate-limiting |
| OpenAI | devproxy config get openai-throttling |
| Anthropic | devproxy config get anthropic-throttling |
| Microsoft Graph | devproxy config get microsoft-graph-rate-limiting |
使用预设启动开发代理。 用您下载的预设替换 github-rate-limiting。 首次启动开发代理时,需要 信任其证书。
devproxy --config-file "~dataFolder/configs/github-rate-limiting/.devproxy/devproxyrc.json"
照常运行应用。 它不断调用真正的 API URL,而开发代理模拟 API 的速率限制和错误。
有关其他 API 的预设,请参阅 Dev Proxy 示例库。
应用如何处理 API 错误?