Dela via


Granska API-begäranden som utfärdats av molntjänster

När du integrerar ditt program med molntjänster är en av de utmaningar du kan stöta på att förstå hur molntjänsten interagerar med de API:er som används. Det är särskilt viktigt att kunna inspektera API-begäranden när du felsöker problem eller när du försöker förstå hur molntjänsten fungerar. Vanligtvis är det svårt eftersom du inte har åtkomst till molntjänstens körning, och du kanske inte heller har åtkomst till övervakningsverktygen för moln-API:et. Genom att använda Dev Proxy och utvecklingstunnlar kan du granska API-begäranden som molntjänster utfärdar till moln-API:er.

Viktigt!

Innan du fortsätter, installera dev tunnels och konfigurera verktyget för användning.

Så anropar molntjänster moln-API:er

När du integrerar ditt program med molntjänster anropar molntjänsten ditt API i molnet. Följande diagram illustrerar det här scenariot:

Diagram som visar hur en molntjänst anropar ett moln-API.

Om du vill granska API-begäranden om problem med molntjänsten behöver du åtkomst till övervakningsverktygen för moln-API:et. Ofta har du inte åtkomst till dessa verktyg. Du kan kringgå den här begränsningen med hjälp av en mellanlagringsmiljö. Det är dock tidskrävande att konfigurera och underhålla en mellanlagringsmiljö. Om du inte äger moln-API:et kanske du inte kan konfigurera en mellanlagringsmiljö alls.

Granska API-begäranden med dev proxy och utvecklingstunnlar

Genom att använda Dev Proxy och utvecklingstunnlar kan du granska DE API-begäranden som molntjänsten utfärdar till moln-API:et.

Diagram som visar hur du kan inspektera moln-API-anrop med hjälp av utvecklingstunnlar och Dev Proxy.

I stället för att anropa moln-API:et direkt konfigurerar du molntjänsten så att den anropar utvecklingstunneln som du kör på den lokala datorn (1). Du konfigurerar utvecklingstunneln så att den använder ett värdhuvud som Dev Proxy fångar upp. Varje gång molntjänsten anropar utvecklingstunneln skickar den begäran till Dev Proxy som fångar upp den (2). Med hjälp av Dev Proxy RewritePlugin ändrar du URL:en för den avlyssnade begäran och vidarebefordrar den till moln-API:et (3). Moln-API:et bearbetar begäran och returnerar ett svar till Dev Proxy (4). Dev Proxy skickar svaret till utvecklingstunneln (5), som vidarebefordrar den till molntjänsten (6). Eftersom begäran dirigeras via den lokala datorn kan du granska dess information, inklusive URL, rubriker och brödtext och svaret från moln-API:et.

Scenarium

Anta att du vill inspektera API-begäranden som en molntjänst skickar till demo-JSONPlaceholder-API:et som finns på https://jsonplaceholder.typicode.com. Genom att kombinera Dev Proxy och utvecklingstunnlar kan du fånga upp begäranden och inspektera deras information.

Du kan inspektera begäranden antingen med hjälp av dev tunnelinspektionsverktyg eller med Dev Proxy DevToolsPlugin. Båda verktygen använder Chrome Dev Tools för att visa information om avlyssnade begäranden och svar. När du använder verktygen för utvecklingstunnelinspektioner ser du utvecklingstunnelns URL som begärans URL. När du använder Dev Proxy DevToolsPlugin ser du i jämförelse hur Dev Proxy fångar upp begäran med hjälp av antingen den lokala eller den omskrivna URL:en.

Granska API-begäranden med hjälp av Dev Proxy, utvecklingstunnlar och inspektionsverktyg för utvecklingstunnlar.

  1. Konfigurera Dev Proxy för att fånga upp begäranden till https://jsonplaceholder.typicode.com och http://jsonplaceholder.typicode.local:

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
      "plugins": [
        {
          "name": "RewritePlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
          "configSection": "rewritePlugin"
        }
      ],
      "urlsToWatch": [
        "https://jsonplaceholder.typicode.com/*",
        "http://jsonplaceholder.typicode.local/*"
      ],
      "rewritePlugin": {
        "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.schema.json",
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    

    Konfigurationsfilen använder RewritePlugin för att skriva om URL:en för de avlyssnade begärandena. Den konfigurerar även Dev Proxy för att intercepta begäranden till https://jsonplaceholder.typicode.com och http://jsonplaceholder.typicode.local URL:er.

    Kommentar

    Det är inte nödvändigt att använda en .local domän, men det är en bra idé som hjälper dig att skilja mellan de verkliga och de avlyssnade begärandena. Observera också att för domänen .local använder du HTTP-protokollet i stället för HTTPS. Dev-tunnlar stöder inte HTTPS för routning av begäranden till anpassade värdhuvuden på den lokala datorn, vilket är anledningen till att du behöver använda HTTP.

  2. Skapa en omskrivningsfil med namnet devproxy-rewrites.json som ändrar URL:en för de avlyssnade begärandena:

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.rewritesfile.schema.json",
      "rewrites": [
        {
          "in": {
            "url": "^http://jsonplaceholder.typicode.local(.*)"
          },
          "out": {
            "url": "https://jsonplaceholder.typicode.com$1"
          }
        }
      ]
    }
    

    Omskrivningsfilen ändrar URL:en för de avlyssnade begärandena från http://jsonplaceholder.typicode.local till https://jsonplaceholder.typicode.com.

  3. Starta Dev Proxy genom att köra på kommandoraden devproxy.

    Skärmbild av kommandoraden med Dev Proxy igång.

  4. Starta utvecklingstunneln genom att köra på kommandoraden devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.

    Skärmbild av kommandoraden som kör Dev Proxy och dev tunnel.

    Med det här kommandot öppnar du en ny utvecklingstunnel på datorn. Du mappar den till 8000-porten där Dev Proxy lyssnar efter inkommande begäranden. Du anger också värdrubriken som Dev Proxy fångar upp.

  5. Observera URL:en för utvecklingstunneln som du kan använda för att konfigurera molntjänsten för att anropa din lokala dator, till exempel https://tunnel_id-8000.euw.devtunnels.ms.

  6. I en webbläsare öppnar du utvecklingstunnelns kontroll-URL, till exempel https://tunnel_id-8000-inspect.euw.devtunnels.ms.

  7. Simulera en molntjänst som anropar moln-API:et med hjälp av utvecklingstunnelns URL genom att köra på kommandoraden: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.

    Kommentar

    Observera att värdnamnet motsvarar URL:en för utvecklingstunneln på datorn. Sökvägen matchar sökvägen för det API som du vill inspektera.

    Skärmbild av kommandoraden som kör Dev Proxy och en utvecklingstunnel och curl som anropar utvecklingstunneln.

  8. Observera hur Dev Proxy fångar upp begäran och vidarebefordrar den till moln-API:et och returnerar slutligen svaret till klienten.

  9. Observera informationen om den avlyssnade begäran och svaret från moln-API:et i webbläsaren.

    Skärmbild av en webbläsare med verktyg för inspektion av utvecklingstunnlar som visar den fångade begäran.

    Kommentar

    Observera att den registrerade begärande-URL:en är URL:en för utvecklingstunneln. Det inspelade värdhuvudet är värdrubriken som Dev Proxy fångar upp.

  10. Stäng utvecklingstunneln och stoppa Dev Proxy genom att trycka på Ctrl+C i respektive sessioner på kommandoraden.

Granska API-begäranden med Dev Proxy och DevToolsPlugin

Ett annat sätt att inspektera API-begäranden som molntjänsten har problem med är att använda Dev Proxy DevToolsPlugin. Skillnaden mellan att använda DevToolsPlugin och dev tunnels-inspektionsverktygen är att DevToolsPlugin visar hur Dev Proxy fångar upp begäran med hjälp av antingen den lokala eller den omskrivna URL:en.

Konfigurera Dev Proxy för att använda DevToolsPlugin för att inspektera API-begäranden med hjälp av den avlyssnade URL:en

Först ska vi konfigurera Dev Proxy för att inspektera moln-API-begäranden. Nu ska vi konfigurera DevToolsPlugin för att visa information om URL:en innan Dev Proxy skriver om den.

  1. Uppdatera dev proxy-konfigurationsfilen för att använda DevToolsPlugin:

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
      "plugins": [
        {
          "name": "DevToolsPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
        },
        {
          "name": "RewritePlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
          "configSection": "rewritePlugin"
        }
      ],
      "urlsToWatch": [
        "https://jsonplaceholder.typicode.com/*",
        "http://jsonplaceholder.typicode.local/*"
      ],
      "rewritePlugin": {
        "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.schema.json",
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    

    Kommentar

    Observera att vi lägger till DevToolsPlugin före RewritePlugin. Genom att lägga till DevToolsPlugin först visas informationen om den avlyssnade begäran innan den skrivs om.

  2. Starta Dev Proxy genom att köra på kommandoraden devproxy. Observera att Dev Proxy öppnar ett webbläsarfönster med Chrome Dev Tools synligt.

  3. Starta utvecklingstunneln genom att köra på kommandoraden devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.

  4. Simulera en molntjänst som anropar moln-API:et med hjälp av utvecklingstunnelns URL genom att köra på kommandoraden: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.

  5. Observera informationen om den avlyssnade begäran och svaret från moln-API:et i webbläsaren med Chrome Dev Tools.

    Skärmbild av en webbläsare med dev proxy-inspektionsverktyg som visar den avlyssnade begäran.

    Kommentar

    Observera att den registrerade begärande-URL:en är URL:en för moln-API:et. Det inspelade värdhuvudet är värdrubriken som Dev Proxy fångar upp.

  6. Stäng utvecklingstunneln och stoppa Dev Proxy genom att trycka på Ctrl+C i respektive sessioner på kommandoraden.

Konfigurera Dev Proxy för att använda DevToolsPlugin för att inspektera API-begäranden med hjälp av den omskrivna URL:en

Nu ska vi uppdatera Dev Proxy-konfigurationen för att visa information om den omskrivna URL:en.

  1. Uppdatera Dev Proxy-konfigurationsfilen genom att flytta DevToolsPlugin efter RewritePlugin.

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
      "plugins": [
        {
          "name": "RewritePlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
          "configSection": "rewritePlugin"
        },
        {
          "name": "DevToolsPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
        }
      ],
      "urlsToWatch": [
        "https://jsonplaceholder.typicode.com/*",
        "http://jsonplaceholder.typicode.local/*"
      ],
      "rewritePlugin": {
        "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.schema.json",
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    
  2. Starta Dev Proxy genom att köra på kommandoraden devproxy. Observera att Dev Proxy öppnar ett webbläsarfönster med Chrome Dev Tools synligt.

  3. Starta utvecklingstunneln genom att köra på kommandoraden devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.

  4. Simulera en molntjänst som anropar moln-API:et med hjälp av utvecklingstunnelns URL genom att köra på kommandoraden: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.

  5. Observera informationen om den avlyssnade begäran och svaret från moln-API:et i webbläsaren med Chrome Dev Tools.

    Skärmbild av en webbläsare med Dev Proxy-inspektionsverktyg som visar den avlyssnade begäran med URL:er för moln-API: er.

    Kommentar

    Observera att både den inspelade begärande-URL:en och värdrubriken visar URL:en för moln-API:et.

  6. Stäng utvecklingstunneln och stoppa Dev Proxy genom att trycka på Ctrl+C i respektive sessioner på kommandoraden.

Sammanfattning

Genom att använda Dev Proxy och utvecklingstunnlar kan du granska API-begäranden som molntjänster utfärdar till moln-API:er. Du kan använda kontrollverktyg för utvecklingstunnlar eller Dev Proxy DevToolsPlugin för att inspektera begäranden. Båda verktygen visar information om de avlyssnade begärandena, inklusive URL, rubriker och brödtext och svaret från moln-API:et. Genom att använda Dev Proxy och utvecklingstunnlar kan du bättre förstå hur molntjänster interagerar med moln-API:er och felsöka problem mer effektivt.

Nästa steg

Läs mer om RewritePlugin.