在本教學課程中,您將瞭解如何使用開發 Proxy 來模擬您自己的應用程式隨機錯誤。
先決條件
本教學課程的這個部分假設您在電腦上安裝並設定了 Dev Proxy。 如果沒有,請立即 。
若要遵循本教學課程,您需要呼叫 API 的應用程式。 您也需要知道應用程式所呼叫之 API 的 URL。
您可以使用 Dev Proxy 搭配任何類型的應用程式和技術堆疊。 以下是如何使用一些熱門技術來設定開發 Proxy 的指示。
請按照以下方式使用 Dev Proxy:
- Node.js 應用程式
- Docker 中的Node.js 應用程式
- JavaScript Azure Functions
- SharePoint 架構 (SPFx) 解決方案
啟動開發代理伺服器以監控您的 URL
啟動開發 Proxy 並監視應用程式所呼叫之 API 的 URL。 例如,如果您的應用程式呼叫位於 https://api.contoso.com/v1/customers的 API,請啟動 Dev Proxy 並監視 URL 模式 https://api.contoso.com/*。
devproxy --urls-to-watch "https://api.contoso.com/*"
--urls-to-watch 參數會告訴 Dev Proxy 要攔截哪些請求。 URL 結尾的通配符 * 會指示 Dev Proxy 攔截所有開頭為 https://api.contoso.com/的 URL 請求。
像平常一樣開始使用您的應用程式。 Dev Proxy 會攔截你指定的 URL 所有請求。 在命令提示字元中,您會看到有關 Dev Proxy 攔截之請求的訊息。
```text
request GET https://api.contoso.com/v1/customers
api ╭ Passed through
╰ GET https://api.contoso.com/v1/customers
request GET https://api.contoso.com/v1/customers
chaos ╭ 403 Forbidden
╰ GET https://api.contoso.com/v1/customers
重要
如果您在命令提示字元中看不到任何訊息,請確定您已正確將應用程式設定為使用開發 Proxy。 此外,檢查開發代理是否攔截您的應用程式所使用的 API URL 請求。 如果您有任何問題,請在 Discord 上的 Dev Proxy 社群 尋求協助。
建立您自己的組態檔
根據預設,Dev Proxy 會使用 Dev Proxy 安裝資料夾中的 devproxyrc.json 檔案進行組態設定。 檔案已設定為模擬 JSON 佔位元 API 的隨機錯誤。 若要取得更真實的結果,請建立您自己的組態檔,使其錯誤與您的應用程式及其所使用的 API 更相關,並搭配 Dev Proxy 使用。
假設您想要將組態檔儲存在應用程式的項目資料夾中,以便與小組的其餘部分共用組態設定。
- 在 [開發 Proxy 安裝] 資料夾中,複製
devproxyrc.json和devproxy-errors.json。 - 在您的項目資料夾中,貼上檔案。
使用儲存在 Dev Proxy 安裝檔案外部的組態檔時,您必須確定 pluginPath 參考正確無誤。 與其將路徑硬式編碼到組態檔中的 Dev Proxy 安裝資料夾中,您可以在路徑的開頭使用 ~appFolder,以包含動態參考回到 Dev Proxy 安裝資料夾。
- 在文本編輯器中,開啟
devproxyrc.json檔案。 - 在
GenericRandomErrorPlugin陣列中找出plugins外掛程式。 - 將
pluginPath更新為~appFolder/plugins/DevProxy.Plugins.dll。 - 在
RetryAfterPlugin陣列中找出plugins外掛程式。 - 將
pluginPath更新為~appFolder/plugins/DevProxy.Plugins.dll。 - 在命令提示字元中,將工作目錄變更為項目資料夾。
- 首先輸入
devproxy --config-file devproxyrc.json,然後按 鍵,再輸入,以使用您的組態檔啟動 Dev Proxy。 - 從命令列將請求傳送至 JSON Placeholder API,並檢視輸出。
- 按 Ctrl + C,安全地停止開發代理伺服器。
提示
安裝適用於 Visual Studio Code 的 Dev Proxy 工具組 擴充功能,可讓您輕鬆地建立及更新組態檔。
下一步
開發 Proxy 支援許多不同的案例,可協助您建置更健全的應用程式。 探索使用指南,以瞭解如何使用 Dev Proxy 的不同功能並改善您的應用程式。