共用方式為


模擬互聯網上的回應

使用開發 Proxy 是模擬 API 的最簡單方式。 無論您要建置前端和 API 尚未就緒,您都需要將後端與外部服務整合,或想要使用不同的響應來測試應用程式,開發 Proxy 可協助您模擬 API 回應。 在整合 API 與雲端服務時,您必須透過因特網公開 API,讓雲端服務可以存取它。 若要在因特網上公開開發人員 Proxy 仿真的模擬回應,請使用 Dev Tunnels。 本文說明如何使用Dev Tunnel設定要透過因特網公開的模擬回應。

定義模擬回應

若要在因特網上公開 Dev Proxy 仿真的模擬回應,請從設定模擬開始。

這很重要

目前,Dev Tunnel 僅支援在因特網上公開 HTTP 模擬回應。

建立模擬回應

建立名為 mocks.json 的檔案,其中包含自定義 API 的模擬回應。 例如,若要模擬 GEThttp://api.contoso.com/products的要求,請定義:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
  "mocks": [
    {
      "request": {
        "url": "http://api.contoso.com/products",
        "method": "GET"
      },
      "response": {
        "headers": [
          {
            "name": "content-type",
            "value": "application/json"
          }
        ],
        "body": [
          {
            "id": 1,
            "name": "Contoso Coffee Beans",
            "price": 12.99
          },
          {
            "id": 2,
            "name": "Contoso Espresso Machine",
            "price": 249.99
          }
        ]
      }
    }
  ]
}

您也可以使用 statusCodenthbodyFragment模擬錯誤、二進位回應或條件式回應。

設定 MockResponsePlugin

建立名為 devproxyrc.json 的 Dev Proxy 組態檔,並啟用 MockResponsePlugin

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mocksPlugin"
    }
  ],
  "urlsToWatch": [
    "http://api.contoso.com/*"
  ],
  "mocksPlugin": {
    "mocksFile": "mocks.json"
  }
}

這很重要

若要比對多個端點,請在 中使用 urlsToWatch通配符。 若要確保正確比對,請先在您的 mocks.json中放置更具體的模擬對象。

驗證組態

執行 Dev Proxy 並將要求傳送至模擬 API,確認模擬正常運作。

啟動開發 Proxy,假設您在目前工作目錄中名為 devproxyrc.json 的檔案中儲存了 Dev Proxy 組態:

devproxy

透過 Dev Proxy 傳送要求來測試您的模擬:

curl -x http://127.0.0.1:8000 http://api.contoso.com/products

您應該會收到在 mocks.json 中定義的模擬產品清單。

使用開發通道公開模擬 API

若要在因特網上公開模擬回應,請啟動對應至開發 Proxy 埠的開發通道。 配置隧道以使用為模擬 API 設定的主機名。

警告

允許匿名存取開發通道表示因特網上的任何人都可以連線到您的本地伺服器,如果他們可以猜測開發通道標識符。

devtunnel host -p 8000 -a --host-header api.contoso.com

此命令會將開發 Proxy 埠對應至公用 HTTP URL。 您現在可以從任何地方存取模擬 API:

curl http://<your-tunnel-id>-8000.<region>.devtunnels.ms/products