Dev Proxy 是一種 API 模擬器,能輕鬆地協助您測試應用程式,甚至超出理想情境的範圍。
您可以測試您的應用程式,以確定它如預期般運作。 但是,如果您使用的 API 失敗,該怎麼辦? 您的應用程式是否會遺失客戶的數據? 您要如何測試這個? 模擬 API 失敗很難。 您最終撰寫的程式代碼不會出貨或更糟:完全不進行測試。 這就是為什麼我們建置了開發 Proxy,以模擬 API 錯誤,讓您輕鬆地測試應用程式,而不需要變更程式代碼。
使用開發代理,您可以:
- 看看你的應用程式如何回應 API 錯誤,且不改變應用程式程式碼,這樣你才能 打造更強大的應用程式,避免損失客戶資料。
- 確認您的應用程式如何處理 API 速率限制,以便避免受到節流,並 改善客戶的用戶體驗。
- 查看您的應用程式如何處理緩慢的 API,讓您可以實作必要的能供性,並 讓您的應用程式更方便使用。
- 快速建立模擬 API 而不撰寫一行程式代碼,因此您可以 專注於建置應用程式,而不是撰寫不會寄送的程式代碼。
- 使用您如何使用 API 的內容指引來改善您的應用程式,讓您的 應用程式變得更好。
Dev Proxy 是一個可在任何平台上運作的命令列工具。 因為它會攔截網路要求,所以它適用於任何類型的應用程式和技術堆疊。 Dev Proxy 是開放原始碼且免費供使用的。
Dev Proxy 是給誰用的?
Dev Proxy 幫助開發者:
- 建立能呼叫 API 的應用程式——測試你的應用程式如何處理來自 GitHub、OpenAI 和 Anthropic 等 API 的錯誤與速率限制,且不更改程式碼
- 使用 Microsoft Graph 建置應用程式 - 獲取權限與最佳實務指引
- 設計 API - 實作前的原型與模擬 API
- 自動化測試 ——將混沌測試整合進 CI/CD 流程
何時使用 Dev Proxy
需要時使用 Dev Proxy:
- 測試 API 韌性而不修改應用程式程式碼
- 支援任何技術棧(瀏覽器、Node.js、.NET、Python 等)。
- 模擬你無法控制的 API 故障
- 獲取 Microsoft Graph 最佳實務的指導
- 自動化 CI/CD 流程中的混亂測試
考慮其他方法時:
- 你只需要瀏覽器中的模擬工具來做前端單元測試
- 你正在建置 API,需要合約測試
- 你需要程式化修改請求/回應主體(Dev Proxy 可以做到,但專用工具可能更簡單)。
快速情境開始
根據你想達成的目標來選擇你的道路:
| 你想做什麼? | Time | Guide |
|---|---|---|
| 測試本應用程式的 API 錯誤處理 | 5 分鐘 | 含隨機錯誤的測試 |
| 測試我的應用程式如何處理 GitHub API 的速率限制 | 15 分鐘 | 測試 GitHub API 速率限制 |
| 測試我的應用程式能處理 OpenAI 的速率限制 | 10 分鐘 | 測試 OpenAI 速率限制 |
| 模擬一個尚未存在的 API | 10 分鐘 | 模擬 CRUD API |
| 請檢查我的 Microsoft Graph 權限 | 10 分鐘 | 偵測最低限度的權限 |
| 了解我的應用程式呼叫哪些 API。 | 5 分鐘 | 發現值得關注的網址 |
| 自動化 CI/CD 中的 API 測試 | 15 分鐘 | 在 CI/CD 中使用 Dev Proxy |
修正 API 問題
從 API 收到錯誤,還是在建置 AI 應用程式或代理時遇到錯誤? 從問題開始:
- 錯誤與限制:429 請求過多、Retry-After、500、502、503 和 504 錯誤,已超過 GitHub API 速率限制,達到 OpenAI 速率上限,Anthropic 529 overloaded_error,.NET HttpClient 逾時
- AI 應用程式與代理:LLM 速率限制、驗證您的程式設計代理所撰寫的錯誤處理、測試 AI 代理在工具失效時的反應、測試 AI 代理是否會受到工具回應中的提示注入影響
試試看使用預設集
預設集是針對特定 API 現成的開發代理設定。 想看看你的應用程式如何處理它所呼叫的 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 | Command |
|---|---|
| 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 |
用預設啟動 Dev Proxy。 替換 github-rate-limiting 成你下載的預設。 第一次啟動 Dev Proxy 時,你需要 信任它的憑證。
devproxy --config-file "~dataFolder/configs/github-rate-limiting/.devproxy/devproxyrc.json"
照常執行你的應用程式。 它一直呼叫真實的 API URL,而 Dev Proxy 則模擬 API 的速率限制和錯誤。
如需其他 API 的預設集,請參考 Dev Proxy 範例圖庫。
您的應用程式如何處理 API 錯誤?