Sdílet prostřednictvím


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:

Diagram znázorňující, jak cloudová služba volá cloudové rozhraní API

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.

Diagram znázorňující, jak můžete kontrolovat volání cloudového rozhraní API pomocí vývojových tunelů a dev proxy serveru

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.comadrese . 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ů

  1. Konfigurace dev proxy serveru pro zachycování požadavků nahttps://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 a http://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.

  2. 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 na https://jsonplaceholder.typicode.com.

  3. Spusťte dev Proxy spuštěním v příkazovém řádku devproxy.

    Snímek obrazovky příkazového řádku se spuštěným dev proxy serverem

  4. 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.

    Snímek obrazovky příkazového řádku se spuštěným vývojovým proxy serverem a vývojovým tunelem

    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í.

  5. 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.

  6. 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.

  7. 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.

    Snímek obrazovky příkazového řádku se spuštěným vývojovým proxy serverem a vývojovým tunelem a curl voláním vývojového tunelu

  8. 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.

  9. Ve webovém prohlížeči si všimněte informací o zachycené žádosti a odpovědi z cloudového rozhraní API.

    Snímek obrazovky webového prohlížeče s nástroji pro kontrolu vývojového tunelu zobrazující zachycenou žádost

    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í.

  10. 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

    Snímek obrazovky webového prohlížeče s nástroji kontroly dev proxy serveru zobrazující zachycenou žádost

    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í.

  6. 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.

  1. 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
    }
    
  2. 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.

  3. 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.

  4. 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.

  5. 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.

    Snímek obrazovky webového prohlížeče s nástroji kontroly dev proxy serveru zobrazující zachycenou žádost s adresami URL 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.

  6. 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.