Kontrola požadavků rozhraní API vydaných cloudovými službami
Když integrujete aplikaci s cloudovými službami, jedním z výzev, kterým byste mohli čelit, je pochopení, jak cloudová služba komunikuje s rozhraními API, která používá. Schopnost kontrolovat požadavky rozhraní API je obzvláště důležitá, když řešíte problémy nebo když se snažíte pochopit, jak cloudová služba funguje. Obvykle je to náročné, protože nemáte přístup k modulu runtime cloudové služby a také možná nemáte přístup k monitorovacím nástrojům pro cloudové rozhraní API. Pomocí vývojových proxy a vývojových tunelů můžete zkontrolovat požadavky rozhraní API, které cloudové služby vydávají pro cloudová rozhraní API.
Důležité
Než budete pokračovat, nainstalujte vývojové tunely a nakonfigurujte nástroj pro použití.
Jak cloudové služby volají cloudová rozhraní API
Když integrujete aplikaci s cloudovými službami, cloudová služba volá vaše rozhraní API v cloudu. Tento scénář znázorňuje následující diagram:
Pokud chcete zkontrolovat požadavky rozhraní API, které se týkají problémů s cloudovou službou, potřebujete přístup k monitorovacím nástrojům pro cloudové rozhraní API. K těmto nástrojům často nemáte přístup. Toto omezení můžete obejít pomocí přípravného prostředí. Nastavení a údržba přípravného prostředí je ale časově náročné. A co víc, pokud cloudové rozhraní API nevlastníte, možná nebudete moct vůbec nastavit přípravné prostředí.
Kontrola požadavků rozhraní API pomocí vývojových proxy a vývojových tunelů
Pomocí vývojových proxy a vývojových tunelů můžete zkontrolovat požadavky rozhraní API, které cloudová služba vydává do cloudového rozhraní API.
Místo přímého volání cloudového rozhraní API nakonfigurujete cloudovou službu tak, aby volala vývojové tunely, které spouštíte na místním počítači (1). Nakonfigurujete vývojové tunely tak, aby používaly hlavičku hostitele, kterou dev proxy zachytí. Pokaždé, když cloudová služba volá vývojový tunel, předá požadavek na vývojový proxy server, který ho zachytí (2). Pomocí protokolu Dev Proxy RewritePlugin změníte adresu URL zachycené žádosti a předáte ji do cloudového rozhraní API (3). Cloudové rozhraní API zpracuje požadavek a vrátí odpověď na vývojový proxy server (4). Dev Proxy předá odpověď do vývojového tunelu (5), který ho předá cloudové službě (6). Vzhledem k tomu, že se požadavek směruje přes místní počítač, můžete zkontrolovat jeho informace, včetně adresy URL, hlaviček a textu a odpovědi z cloudového rozhraní API.
Scénář
Řekněme, že chcete zkontrolovat požadavky rozhraní API, že má cloudová služba problémy s ukázkovým rozhraním API JSONPlaceholder, které se nachází na https://jsonplaceholder.typicode.com
adrese . Kombinací vývojových proxy a vývojových tunelů můžete zachycovat požadavky a kontrolovat jejich informace.
Žádosti můžete zkontrolovat buď pomocí nástrojů pro kontrolu vývojových tunelů, nebo pomocí Dev Proxy DevToolsPlugin. Oba nástroje používají Nástroje pro vývojáře pro Chrome k zobrazení informací o zachycených požadavcích a odpovědích. Když použijete nástroje kontroly vývojového tunelu, zobrazí se jako adresa URL požadavku adresa URL vývojového tunelu. Když použijete Dev Proxy DevToolsPlugin, zjistíte, jak Dev Proxy zachytí požadavek pomocí místní nebo přepsané adresy URL.
Kontrola požadavků rozhraní API pomocí nástrojů pro kontrolu vývojového proxy serveru, vývojových tunelů a vývojových tunelů
Konfigurace dev proxy serveru pro zachycování požadavků na
https://jsonplaceholder.typicode.com
:http://jsonplaceholder.typicode.local
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/rc.schema.json", "plugins": [ { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll", "configSection": "rewritePlugin" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }
Konfigurační soubor používá rewritePlugin k přepsání adresy URL zachycených požadavků. Konfiguruje také dev Proxy pro zachycování požadavků na
https://jsonplaceholder.typicode.com
adresy URL ahttp://jsonplaceholder.typicode.local
adresy URL.Poznámka:
I když není nutné používat
.local
doménu, je vhodné rozlišovat mezi skutečnými a zachycenými požadavky. Všimněte si také, že pro.local
doménu používáte protokol HTTP místo HTTPS. Vývojové tunely nepodporují https pro směrování požadavků na vlastní hlavičky hostitele na místním počítači, proto potřebujete použít protokol HTTP.Vytvořte přepsaný soubor s názvem
devproxy-rewrites.json
, který změní adresu URL zachycených požadavků:{ "rewrites": [ { "in": { "url": "^http://jsonplaceholder.typicode.local(.*)" }, "out": { "url": "https://jsonplaceholder.typicode.com$1" } } ] }
Přepsání souboru změní adresu URL zachycených požadavků z
http://jsonplaceholder.typicode.local
nahttps://jsonplaceholder.typicode.com
.Spusťte dev Proxy spuštěním v příkazovém řádku
devproxy
.Spuštěním vývojového tunelu spusťte příkazový řádek
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous
.Pomocí tohoto příkazu otevřete na svém počítači nový vývojový tunel. Namapujete ho na port 8000, kde dev proxy naslouchá příchozím požadavkům. Zadáte také hlavičku hostitele, kterou dev proxy zachytí.
Poznamenejte si adresu URL vývojového tunelu, který můžete použít ke konfiguraci cloudové služby pro volání místního počítače, například
https://tunnel_id-8000.euw.devtunnels.ms
.Ve webovém prohlížeči otevřete adresu URL kontroly vývojového tunelu, například
https://tunnel_id-8000-inspect.euw.devtunnels.ms
.Simulujte cloudovou službu, která volá cloudové rozhraní API pomocí adresy URL vývojového tunelu, spuštěním na příkazovém řádku:
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1
.Poznámka:
Všimněte si, že název hostitele odpovídá adrese URL vývojového tunelu na vašem počítači. Cesta odpovídá cestě k rozhraní API, které chcete zkontrolovat.
Všimněte si, jak Dev Proxy zachytí požadavek a přepošle ho do cloudového rozhraní API a nakonec vrátí odpověď klientovi.
Ve webovém prohlížeči si všimněte informací o zachycené žádosti a odpovědi z cloudového rozhraní API.
Poznámka:
Všimněte si, že zaznamenaná adresa URL požadavku je adresa URL vývojového tunelu. Zaznamenaná hlavička hostitele je hlavička hostitele, kterou dev proxy zachytí.
Zavřete vývojový tunel a zastavte Dev Proxy stisknutím kláves Ctrl+C v příslušných relacích na příkazovém řádku.
Kontrola požadavků rozhraní API pomocí Dev Proxy a DevToolsPlugin
Dalším způsobem kontroly požadavků rozhraní API, které se týkají problémů s cloudovou službou, je použití Dev Proxy DevToolsPlugin. Rozdíl mezi použitím nástrojů pro kontrolu devToolsPlugin a vývojových tunelů spočívá v tom, že DevToolsPlugin ukazuje, jak Dev Proxy zachytí požadavek pomocí místní nebo přepsané adresy URL.
Konfigurace dev proxy serveru pro použití DevToolsPlugin ke kontrole požadavků rozhraní API pomocí zachycené adresy URL
Nejprve nakonfigurujeme Dev Proxy pro kontrolu požadavků cloudového rozhraní API. Pojďme nakonfigurovat DevToolsPlugin tak, aby zobrazoval informace o adrese URL před tím, než ji dev proxy přepíše.
Aktualizujte konfigurační soubor dev proxy tak, aby používal DevToolsPlugin:
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/rc.schema.json", "plugins": [ { "name": "DevToolsPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll" }, { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll", "configSection": "rewritePlugin" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }
Poznámka:
Všimněte si, že před rewritePlugin přidáme DevToolsPlugin. Přidáním devToolsPlugin nejprve zobrazí informace o zachycené žádosti před jejím přepsáním.
Spusťte dev Proxy spuštěním v příkazovém řádku
devproxy
. Všimněte si, že Dev Proxy otevře okno webového prohlížeče s viditelnými nástroji Chrome Dev Tools.Spuštěním vývojového tunelu spusťte příkazový řádek
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous
.Simulujte cloudovou službu, která volá cloudové rozhraní API pomocí adresy URL vývojového tunelu, spuštěním na příkazovém řádku:
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1
.Ve webovém prohlížeči s nástroji Chrome Dev Tools si všimněte informací o zachycené žádosti a odpovědi z cloudového rozhraní API.
Poznámka:
Všimněte si, že zaznamenaná adresa URL požadavku je adresa URL cloudového rozhraní API. Zaznamenaná hlavička hostitele je hlavička hostitele, kterou dev proxy zachytí.
Zavřete vývojový tunel a zastavte Dev Proxy stisknutím kláves Ctrl+C v příslušných relacích na příkazovém řádku.
Konfigurace dev proxy serveru pro použití DevToolsPlugin ke kontrole požadavků rozhraní API pomocí přepsané adresy URL
Dále aktualizujeme konfiguraci dev proxy serveru, abychom zobrazili informace o přepsané adrese URL.
Aktualizujte konfigurační soubor dev proxy přesunutím devToolsPlugin za rewritePlugin:
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/rc.schema.json", "plugins": [ { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll", "configSection": "rewritePlugin" }, { "name": "DevToolsPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }
Spusťte dev Proxy spuštěním v příkazovém řádku
devproxy
. Všimněte si, že Dev Proxy otevře okno webového prohlížeče s viditelnými nástroji Chrome Dev Tools.Spuštěním vývojového tunelu spusťte příkazový řádek
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous
.Simulujte cloudovou službu, která volá cloudové rozhraní API pomocí adresy URL vývojového tunelu, spuštěním na příkazovém řádku:
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1
.Ve webovém prohlížeči s nástroji Chrome Dev Tools si všimněte informací o zachycené žádosti a odpovědi z cloudového rozhraní API.
Poznámka:
Všimněte si, že zaznamenaná adresa URL požadavku i hlavička hostitele zobrazují adresu URL cloudového rozhraní API.
Zavřete vývojový tunel a zastavte Dev Proxy stisknutím kláves Ctrl+C v příslušných relacích na příkazovém řádku.
Shrnutí
Pomocí vývojových proxy a vývojových tunelů můžete zkontrolovat požadavky rozhraní API, které cloudové služby vydávají pro cloudová rozhraní API. Ke kontrole požadavků můžete použít buď nástroje pro kontrolu vývojových tunelů, nebo dev proxy devToolsPlugin. Oba nástroje vám ukážou informace o zachycených požadavcích, včetně adresy URL, hlaviček a textu a odpovědi z cloudového rozhraní API. Pomocí vývojových proxy a vývojových tunelů můžete lépe pochopit, jak cloudové služby komunikují s cloudovými rozhraními API, a efektivněji řešit problémy.
Další kroky
Přečtěte si další informace o rewritePlugin.