A felhőszolgáltatások által kiadott API-kérések vizsgálata

Egy pillantással
Cél: Felhőszolgáltatás API-kéréseinek helyi vizsgálata
Idő: 20 perc
Beépülő modulok:RewritePlugin, DevToolsPlugin
Előfeltételek:Dev Proxy,Dev Tunnels beállítása

Amikor az alkalmazást a felhőszolgáltatásokkal integrálja, az egyik kihívás, amellyel szembesülhet, az, hogy a felhőszolgáltatás hogyan kommunikál az általa használt API-kkal. Az API-kérések vizsgálata különösen fontos a problémák elhárításakor vagy a felhőszolgáltatás működésének megértéséhez. Ez általában kihívást jelent, mert nincs hozzáférése a felhőszolgáltatás futtatókörnyezetéhez, és előfordulhat, hogy a felhő API monitorozási eszközeihez sem fér hozzá. A Dev Proxy és a fejlesztői alagutak használatával megvizsgálhatja a felhőszolgáltatások által a felhő API-khoz küldött API-kéréseket.

Fontos

A folytatás előtt telepítse a fejlesztői alagutakat , és konfigurálja az eszközt használatra.

Felhőalapú API-k hívása a felhőszolgáltatásokban

Amikor az alkalmazást felhőszolgáltatásokkal integrálja, a felhőszolgáltatás meghívja az API-t a felhőben. Az alábbi ábra a következő forgatókönyvet szemlélteti:

Diagram, amely bemutatja, hogyan hív meg egy felhőszolgáltatás egy felhőalapú API-t.

A felhőszolgáltatással kapcsolatos API-kérések vizsgálatához hozzá kell férnie a felhő API monitorozási eszközeihez. Gyakran nem fér hozzá ezekhez az eszközökhöz. Ezt a korlátozást átmeneti környezettel megkerülheti. Az átmeneti környezet beállítása és karbantartása azonban időigényes. Mi több, ha nem rendelkezik a felhőalapú API-val, előfordulhat, hogy egyáltalán nem tud átmeneti környezetet beállítani.

API-kérések vizsgálata Dev Proxy és fejlesztői alagutak használatával

Dev Proxy és fejlesztői alagutak használatával megvizsgálhatja azokat az API-kéréseket, amelyeket a felhőszolgáltatás a felhőalapú API-val kapcsolatban tapasztal.

Diagram, amely bemutatja, hogyan vizsgálhatja meg a felhőalapú API-hívásokat fejlesztői alagutak és Dev Proxy használatával.

A felhőalapú API közvetlen meghívása helyett úgy konfigurálja a felhőszolgáltatást, hogy meghívja a helyi gépen futtatott fejlesztői alagutat (1). Úgy konfigurálja a Dev Tunnelt, hogy egy olyan gazdagépfejlécet használjon, amelyet a Dev Proxy elfog. Minden alkalommal, amikor a felhőszolgáltatás meghívja a fejlesztői alagutat, átadja a kérést a Dev Proxynak, amely elfogja (2). A Dev Proxy RewritePlugin használatával módosíthatja a lehallgatott kérés URL-címét, és továbbítja azt a felhő API-nak (3). A felhő API feldolgozza a kérést, és választ ad vissza a Dev Proxynak (4). A Dev Proxy átadja a dev tunnel (5) válaszát, amely továbbítja azt a felhőszolgáltatásnak (6). Mivel a kérés a helyi gépen keresztül van irányítva, megvizsgálhatja annak adatait, beleértve az URL-címet, a fejléceket és a törzset, valamint a felhő API válaszát.

Eset

Tegyük fel, hogy meg szeretné vizsgálni azOKAT az API-kéréseket, amelyek szerint egy felhőszolgáltatás problémákat tapasztal a bemutató JSONPlaceholder API-val, amely a következő helyen https://jsonplaceholder.typicode.comtalálható: . A Dev Proxy és a dev alagutak kombinálásával elfoghatja a kéréseket, és megvizsgálhatja az adataikat.

A kérelmeket a Dev Tunnels ellenőrző eszközeivel vagy a Dev Proxy DevToolsPlugin használatával is megvizsgálhatja. Mindkét eszköz a Chrome Dev Tools használatával jeleníti meg a lehallgatott kérelmekre és válaszokra vonatkozó információkat. A fejlesztői alagutak ellenőrzési eszközeinek használatakor a fejlesztői alagút URL-címe jelenik meg a kérés URL-címeként. Ehhez képest a Dev Proxy DevToolsPlugin használatakor láthatja, hogy a Dev Proxy hogyan fogja elfogni a kérést a helyi vagy az újraírt URL-cím használatával.

API-kérések vizsgálata fejlesztői proxyn, alagutakon és azok ellenőrző eszközein keresztül.

  1. Dev Proxy konfigurálása a https://jsonplaceholder.typicode.com és http://jsonplaceholder.typicode.local irányuló kérések elfogására.

    Fájl: devproxyrc.json

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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/v2.3.0/rewriteplugin.schema.json",
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    

    A konfigurációs fájl a RewritePlugin használatával írja át az elfogt kérések URL-címét. Emellett konfigurálja a Dev Proxyt is, hogy elfogja a kéréseket a https://jsonplaceholder.typicode.com és a http://jsonplaceholder.typicode.local URL-címekhez.

    Feljegyzés

    Bár nem szükséges tartományt .local használni, ez egy jó gyakorlat, amely segít különbséget tenni a valós és a lehallgatott kérések között. Azt is megfigyelheti, hogy a tartomány esetében a .local HTTPS helyett a HTTP protokollt használja. A fejlesztői átjárók nem támogatják a HTTPS-t a helyi gép egyéni gazdagépfejléceihez irányuló kérések útválasztásához, ezért kell HTTP-t használnia.

  2. Hozzon létre egy átíró fájlt devproxy-rewrites.json, amely módosítja az elfogott kérések URL-címét.

    Fájl: devproxy-rewrites.json

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

    Az átírási fájl a lehallgatott kérések URL-címét a következőre http://jsonplaceholder.typicode.localhttps://jsonplaceholder.typicode.commódosítja: .

  3. Indítsa el a fejlesztői proxyt a parancssorban történő futtatással devproxy.

    Képernyőkép a parancssorról, amelyen a Dev Proxy fut.

  4. Indítsa el a fejlesztői alagutat a parancssorban történő futtatással.

    Képernyőkép a Dev Proxyt és a Fejlesztői alagutat futtató parancssorról.

    Ezzel a paranccsal megnyit egy új fejlesztői alagutat a gépen. A 8000-s portra irányítja, ahol a Dev Proxy figyeli a bejövő kéréseket. Megadhatja a host fejlécet is, amelyet a Dev Proxy elfog.

  5. Figyelje meg annak a fejlesztői alagútnak az URL-címét, amellyel konfigurálhatja a felhőszolgáltatást https://tunnel_id-8000.euw.devtunnels.mspéldául a helyi gép meghívására.

  6. Egy webböngészőben nyissa meg például https://tunnel_id-8000-inspect.euw.devtunnels.msa dev tunnel vizsgálati URL-címét.

  7. Szimuláljon egy felhőszolgáltatást, amely meghívja a felhő API-t a fejlesztői alagút URL-címének használatával a parancssorban való futtatással: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.

    Feljegyzés

    Figyelje meg, hogy a gazdagép neve megegyezik a gépen található fejlesztői alagút URL-címével. Az elérési út megegyezik a vizsgálandó API elérési útjára.

    Képernyőkép a Dev Proxyt és egy fejlesztői alagutat futtató parancssorról, valamint a fejlesztői alagutat meghívó curlről.

  8. Figyelje meg, hogy a Dev Proxy hogyan továbbítja a kérést, majd továbbítja a felhő API-nak, és végül visszaadja a választ az ügyfélnek.

  9. A webböngészőben figyelje meg a lehallgatott kéréssel és a felhő API válaszával kapcsolatos információkat.

    Képernyőkép egy webböngészőről, amelyen dev tunnel-ellenőrző eszközök láthatók az elfogt kéréssel.

    Feljegyzés

    Figyelje meg, hogy a rögzített kérelem URL-címe a fejlesztői alagút URL-címe. A rögzített gazdagépfejléc az a gazdagépfejléc, amelyet a Dev Proxy elfog.

  10. Zárja be a fejlesztői alagutat, és állítsa le a Dev Proxyt a Ctrl C+a parancssor megfelelő munkameneteiben.

API-kérések vizsgálata Dev Proxy és DevToolsPlugin használatával

A felhőalapú szolgáltatással kapcsolatos API-kérések vizsgálatának másik módja a Dev Proxy DevToolsPlugin használata. A DevToolsPlugin és a dev alagutak ellenőrző eszközeinek használata közötti különbség az, hogy a DevToolsPlugin megmutatja, hogyan fogja el a Dev Proxy a kérést a helyi vagy az újraírt URL-cím használatával.

Konfigurálja a Dev Proxyt, hogy a DevToolsPlugin segítségével vizsgálja az API-kéréseket a lehallgatott URL-cím segítségével

Először konfiguráljuk a Dev Proxyt a felhőalapú API-kérések vizsgálatához. Konfiguráljuk úgy a DevToolsPlugint, hogy a Dev Proxy újraírása előtt megjelenítse az URL-cím adatait.

  1. Frissítse a Dev Proxy konfigurációs fájlját a DevToolsPlugin használatára:

    Fájl: devproxyrc.json

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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/v2.3.0/rewriteplugin.schema.json",
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    

    Feljegyzés

    Figyelje meg, hogy hozzáadjuk a DevToolsPlugint az Újraírásplugin elé. Ha először hozzáadja a DevToolsPlugint, az újraírás előtt megjeleníti a lehallgatott kérelem adatait.

  2. Indítsa el a fejlesztői proxyt a parancssorban történő futtatással devproxy. Figyelje meg, hogy a Dev Proxy megnyit egy böngészőablakot, amelyen látható a Chrome Dev Tools.

  3. Indítsa el a fejlesztői alagutat a parancssorban történő futtatással.

  4. Szimuláljon egy felhőszolgáltatást, amely meghívja a felhő API-t a fejlesztői alagút URL-címének használatával a parancssorban való futtatással: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.

  5. A Chrome Dev Tools böngészőben figyelje meg a lehallgatott kéréssel és a felhő API válaszával kapcsolatos információkat.

    Képernyőkép egy böngészőről a Dev Proxy ellenőrző eszközeivel, amely az elfogt kérést mutatja.

    Feljegyzés

    Figyelje meg, hogy a rögzített kérelem URL-címe a felhőalapú API URL-címe. A rögzített gazdagépfejléc az a gazdagépfejléc, amelyet a Dev Proxy elfog.

  6. Zárja be a fejlesztői alagutat, és állítsa le a Dev Proxyt a Ctrl C+a parancssor megfelelő munkameneteiben.

A Dev Proxy konfigurálása a DevToolsPlugin használatával az API-kérések újraírt URL-cím használatával történő vizsgálatához

Ezután frissítse a dev proxy konfigurációját az újraírt URL-cím információinak megjelenítéséhez.

  1. Frissítse a Dev Proxy konfigurációs fájlját úgy, hogy a DevToolsPlugint a RewritePlugin után helyezi el:

    Fájl: devproxyrc.json

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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/v2.3.0/rewriteplugin.schema.json",
        "rewritesFile": "devproxy-rewrites.json"
      },
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    
  2. Indítsa el a fejlesztői proxyt a parancssorban történő futtatással devproxy. Figyelje meg, hogy a Dev Proxy megnyit egy böngészőablakot, amelyen látható a Chrome Dev Tools.

  3. Indítsa el a fejlesztői alagutat a parancssorban történő futtatással.

  4. Szimuláljon egy felhőszolgáltatást, amely meghívja a felhő API-t a fejlesztői alagút URL-címének használatával a parancssorban való futtatással: curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.

  5. A Chrome Dev Tools böngészőben figyelje meg a lehallgatott kéréssel és a felhő API válaszával kapcsolatos információkat.

    Képernyőkép egy webböngészőről a Dev Proxy ellenőrző eszközeivel, amely a lehallgatott kérést jeleníti meg a felhőBELI API URL-címeivel.

    Feljegyzés

    Figyelje meg, hogy a rögzített kérelem URL-címe és a hoszt fejléce is megjeleníti az URL-címét a felhő API-nak.

  6. Zárja be a fejlesztői alagutat, és állítsa le a Dev Proxyt a Ctrl C+a parancssor megfelelő munkameneteiben.

Összegzés

A Dev Proxy és a fejlesztői alagutak használatával megvizsgálhatja a felhőszolgáltatások által a felhő API-khoz küldött API-kéréseket. A kérések vizsgálatához használhat fejlesztői alagutakat ellenőrző eszközöket, vagy a Dev Proxy DevToolsPlugint. Mindkét eszköz megjeleníti a lehallgatott kérelmekkel kapcsolatos információkat, beleértve az URL-címet, a fejléceket és a törzset, valamint a felhő API válaszát. A Dev Proxy és a fejlesztői alagutak használatával jobban megértheti, hogyan használják a felhőszolgáltatások a felhő API-kat, és hatékonyabban háríthatja el a problémákat.

Következő lépések

További információ a RewritePluginről.

Lásd még