Dela via


Simulera falska svar över internet

Att använda Dev Proxy är det enklaste sättet att håna ett API. Oavsett om du skapar klientdelen och API:et inte är klart än, måste du integrera serverdelen med en extern tjänst, eller om du vill testa programmet med olika svar, kan Dev Proxy hjälpa dig att simulera API-svar. När du integrerar ditt API med molntjänster måste du exponera ditt API över internet så att molntjänsten kan komma åt det. Om du vill exponera falska svar som simulerats av Dev Proxy via Internet använder du Dev Tunnels. Den här artikeln beskriver hur du konfigurerar simulerade svar som ska göras tillgängliga via internet med Dev Tunnels.

Definiera falska svar

Om du vill exponera falska svar som simulerats av Dev Proxy via Internet börjar du med att konfigurera mocks.

Viktigt!

För närvarande har Dev Tunnels endast stöd för att exponera HTTP-falska svar över internet.

Skapa falska svar

Skapa en fil med namnet mocks.json som innehåller svar för teständamål för ditt anpassade API. Om du till exempel vill simulera en GET begäran till http://api.contoso.com/productsdefinierar du:

{
  "$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
          }
        ]
      }
    }
  ]
}

Du kan också simulera fel, binära svar eller villkorsstyrda svar med hjälp av statusCode, ntheller bodyFragment.

Konfigurera MockResponsePlugin

Skapa en Dev Proxy-konfigurationsfil med namnet devproxyrc.json och aktivera 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"
  }
}

Viktigt!

Om du vill matcha flera slutpunkter använder du jokertecken i urlsToWatch. För att säkerställa korrekt matchning bör du placera mer specifika testmoduler först i din mocks.json.

Verifiera konfigurationen

Kontrollera att mocks fungerar korrekt genom att köra Dev Proxy och skicka begäranden till det simulerade API:et.

Starta Dev Proxy, förutsatt att du har sparat Dev Proxy-konfigurationen i en fil med namnet devproxyrc.json i den aktuella arbetskatalogen:

devproxy

Testa din mock genom att skicka en begäran via Dev Proxy:

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

Du bör få den simulerade produktlistan som definierats i mocks.json.

Exponera det falska API:et med Dev Tunnels

Om du vill exponera falska svar över internet startar du en utvecklingstunnel som mappats till Dev Proxy-porten. Konfigurera tunneln så att den använder det värdnamn som konfigurerats för det simulerade API:et.

Varning

Att tillåta anonym åtkomst till en utvecklingstunnel innebär att alla på Internet kan ansluta till din lokala server, om de kan gissa utvecklingstunnel-ID:t.

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

Det här kommandot mappar Dev Proxy-porten till en offentlig HTTP-URL. Nu kan du komma åt ditt falska API var som helst:

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