Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
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.
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.
Konfigurera Dev Proxy för att fånga upp begäranden till
https://jsonplaceholder.typicode.comochhttp://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.comochhttp://jsonplaceholder.typicode.localURL:er.Kommentar
Det är inte nödvändigt att använda en
.localdomä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.localanvä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.Skapa en omskrivningsfil med namnet
devproxy-rewrites.jsonsom ä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.localtillhttps://jsonplaceholder.typicode.com.Starta Dev Proxy genom att köra på kommandoraden
devproxy.Starta utvecklingstunneln genom att köra på kommandoraden
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.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.
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.I en webbläsare öppnar du utvecklingstunnelns kontroll-URL, till exempel
https://tunnel_id-8000-inspect.euw.devtunnels.ms.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.
Observera hur Dev Proxy fångar upp begäran och vidarebefordrar den till moln-API:et och returnerar slutligen svaret till klienten.
Observera informationen om den avlyssnade begäran och svaret från moln-API:et i webbläsaren.
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.
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.
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.
Starta Dev Proxy genom att köra på kommandoraden
devproxy. Observera att Dev Proxy öppnar ett webbläsarfönster med Chrome Dev Tools synligt.Starta utvecklingstunneln genom att köra på kommandoraden
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.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.Observera informationen om den avlyssnade begäran och svaret från moln-API:et i webbläsaren med Chrome Dev Tools.
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.
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.
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 }Starta Dev Proxy genom att köra på kommandoraden
devproxy. Observera att Dev Proxy öppnar ett webbläsarfönster med Chrome Dev Tools synligt.Starta utvecklingstunneln genom att köra på kommandoraden
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.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.Observera informationen om den avlyssnade begäran och svaret från moln-API:et i webbläsaren med Chrome Dev Tools.
Kommentar
Observera att både den inspelade begärande-URL:en och värdrubriken visar URL:en för moln-API:et.
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.