Megosztás a következőn keresztül:


Árnyék API-k felderítése Dev Proxy használatával

Az Azure API Center használatával katalógusba rendezheti a szervezetben használt API-kat. Ez lehetővé teszi, hogy megállapítsa, mely API-kat használja, hol van az API az életciklusában, és kihez forduljon, ha problémák merülnek fel. Röviden: az API-k naprakész katalógusával javíthatja az irányítási, megfelelőségi és biztonsági helyzeteket.

Az alkalmazás létrehozásakor, különösen ha új forgatókönyveket integrál, előfordulhat, hogy olyan API-kat használ, amelyek nincsenek regisztrálva az Azure API Centerben. Ezeket az API-kat árnyék API-knak nevezzük. Az árnyék API-k olyan API-k, amelyek nincsenek regisztrálva a szervezetben. Lehetnek olyan API-k, amelyek még nincsenek regisztrálva, vagy lehetnek olyan API-k, amelyeket nem a szervezetében kell használni.

Az árnyék API-k keresésének egyik módja a Dev Proxy használata. A Dev Proxy egy API-szimulátor, amely elfogja és elemzi az alkalmazásoktól érkező API-kéréseket. A Dev Proxy egyik funkciója annak ellenőrzése, hogy az elfogt API-kérések az API Centerben regisztrált API-khoz tartoznak-e.

Képernyőkép egy parancssorról, amelyen a Dev Proxy ellenőrzi, hogy a rögzített API-kérések regisztrálva vannak-e az Azure API Centerben.

Előkészületek

Az árnyék API-k észleléséhez rendelkeznie kell egy Azure API Center-példánysal, amely információkat tartalmaz a szervezetében használt API-król. Ha még nem hozott létre egyet, olvassa el az API-központ létrehozása című rövid útmutatót. Emellett telepítenie kell a Dev Proxyt is.

API-központ adatainak másolása

Az Azure API Center-példány áttekintési lapján másolja ki az API Center-példány nevét , az erőforráscsoport nevét és az előfizetés azonosítóját. Ezekre az információkra szüksége van a dev proxy ApiCenterOnboardingPlugin konfigurálásához, hogy az kapcsolódni tud az Azure API Center-példányhoz.

Képernyőkép az Azure API Center áttekintési oldaláról, amelyen számos tulajdonság van kiemelve.

Fejlesztői proxy konfigurálása

Annak ellenőrzéséhez, hogy az alkalmazás árnyék API-kat használ-e, engedélyeznie kell a ApiCenterOnboardingPlugin Dev Proxy konfigurációs fájljában. Az alkalmazás által használt API-k jelentésének létrehozásához vegyen fel egy riportert.

Engedélyezze a ApiCenterOnboardingPlugin

A fájlban devproxyrc.json adja hozzá a következő konfigurációt:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterOnboardingPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterOnboardingPlugin"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterOnboardingPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default",
    "createApicEntryForNewApis": false
  }
}

subscriptionIdA , resourceGroupNameés serviceName tulajdonságok között adja meg az Azure API Center-példány adatait.

A tulajdonságban urlsToWatch adja meg az alkalmazás által használt URL-címeket.

Tipp.

A Dev Proxy Toolkit Visual Studio Code bővítmény használatával egyszerűen kezelheti a Dev Proxy konfigurációját.

Riporter hozzáadása

A ApiCenterOnboardingPlugin rendszer jelentést készít az alkalmazás által használt API-król. A jelentés megtekintéséhez vegyen fel egy riportert a Dev Proxy konfigurációs fájljába. A Dev Proxy több riportert is kínál. Ebben a példában az egyszerű szöveges riportert használja.

Frissítse a devproxyrc.json fájlt egy egyszerű szöveges riporterre mutató hivatkozással:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterOnboardingPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterOnboardingPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterOnboardingPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default",
    "createApicEntryForNewApis": false
  }
}

Ellenőrizze, hogy az alkalmazás árnyék API-kat használ-e

Annak ellenőrzéséhez, hogy az alkalmazás árnyék API-kat használ-e, csatlakozzon az Azure-előfizetéséhez, futtassa a Dev Proxyt, és engedje meg, hogy elfogja az alkalmazás API-kéréseit. A Dev Proxy ezután összehasonlítja az API-kérésekkel kapcsolatos információkat az Azure API Center információival, valamint az API Centerben nem regisztrált API-k jelentéseivel.

Csatlakozás az Azure-előfizetéshez

A Dev Proxy az Azure API Center információi alapján állapítja meg, hogy az alkalmazás árnyék API-kat használ-e. Az információk beszerzéséhez szüksége van egy kapcsolatra az Azure-előfizetéshez. Az Azure-előfizetéshez többféleképpen is csatlakozhat.

Fejlesztői proxy futtatása

Az Azure-előfizetéshez való csatlakozás után indítsa el a Dev Proxyt. Ha a Dev Proxyt ugyanabból a mappából indítja el, ahol a devproxyrc.json fájl található, az automatikusan betölti a konfigurációt. Ellenkező esetben a beállítással --config-file adja meg a konfigurációs fájl elérési útját.

A Dev Proxy indításakor ellenőrzi, hogy tud-e csatlakozni az Azure-előfizetéshez. Ha a kapcsolat sikeres, a következőhöz hasonló üzenet jelenik meg:

 info    Plugin ApiCenterOnboardingPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Nyomja le az r billentyűt az API-kérések alkalmazásból való rögzítéséhez.

Az alkalmazás használata

A szokásos módon használja az alkalmazást. A Dev Proxy elfogja az API-kéréseket, és a memóriában tárolja az róluk szóló információkat. A fejlesztői proxy futtatásának parancssorában meg kell jelennie az alkalmazás által küldött API-kérésekkel kapcsolatos információknak.

 info    Plugin ApiCenterOnboardingPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through

 req   ╭ DELETE https://jsonplaceholder.typicode.com/posts/1
 api   ╰ Passed through

Árnyék API-k ellenőrzése

Állítsa le a felvételt az s billentyű lenyomásával. A Dev Proxy csatlakozik az API Center-példányhoz, és összehasonlítja a kérésekkel kapcsolatos információkat az API Center információival.

 info    Plugin ApiCenterOnboardingPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through

 req   ╭ DELETE https://jsonplaceholder.typicode.com/posts/1
 api   ╰ Passed through
○ Stopped recording
 info    Checking if recorded API requests belong to APIs in API Center...
 info    Loading APIs from API Center...
 info    Loading API definitions from API Center...

Amikor a Dev Proxy befejezi az elemzést, létrehoz egy jelentést egy, a következő tartalommal ellátott ApiCenterOnboardingPlugin_PlainTextReporter.txt fájlban:

New APIs that aren't registered in Azure API Center:

https://jsonplaceholder.typicode.com:
  DELETE https://jsonplaceholder.typicode.com/posts/1

APIs that are already registered in Azure API Center:

GET https://jsonplaceholder.typicode.com/posts

Árnyék API-k automatikus előkészítése

A ApiCenterOnboardingPlugin rendszer nem csak észleli az árnyék API-kat, hanem automatikusan előkészíti őket az API Centerbe. Az árnyék API-k automatikus előkészítéséhez a Dev Proxy konfigurációs fájljában frissítse a createApicEntryForNewApis következőre true: .

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterOnboardingPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterOnboardingPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterOnboardingPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default",
    "createApicEntryForNewApis": true
  }
}

Ha a Dev Proxyt a beállított beállítással createApicEntryForNewApis truefuttatja, az automatikusan új API-bejegyzéseket hoz létre az Azure API Centerben az általa észlelt árnyék API-khoz.

Képernyőkép az API Centerről, amelyen egy újonnan létrehozott API látható.

Árnyék API-k automatikus előkészítése OpenAPI-specifikációval

Ha úgy dönt, hogy automatikusan előkészíti az árnyék API-kat az API Centerbe, a Dev Proxy létrehozhatja az API OpenAPI-specifikációját. Az API-k OpenAPI-specifikációkkal való előkészítése felgyorsítja a hiányzó végpontok előkészítését, és megadja a szükséges információkat az API-ról. Amikor az észleli, hogy a ApiCenterOnboardingPlugin Dev Proxy létrehozott egy új OpenAPI-specifikációt, társítja azt az API Center megfelelő beépített API-jával.

Ha automatikusan szeretne OpenAPI-specifikációkat létrehozni az előkészített API-khoz, frissítse a Dev Proxy konfigurációját, hogy tartalmazza a OpenApiSpecGeneratorPlugin.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenApiSpecGeneratorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    },
    {
      "name": "ApiCenterOnboardingPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterOnboardingPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterOnboardingPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default",
    "createApicEntryForNewApis": true
  }
}

Fontos

A Dev Proxy a beépülő modulokat a konfigurációban regisztrált sorrendben hajtja végre. Regisztrálnia kell az OpenApiSpecGeneratorPlugin elsőt, hogy openAPI-specifikációkat hozhasson létre az ApiCenterOnboardingPlugin új API-k előkészítése előtt.

Ha dev proxyt futtat ezzel a konfigurációval, automatikusan új API-bejegyzéseket hoz létre az Azure API Centerben az általa észlelt árnyék API-khoz. Minden új API esetében a Dev Proxy létrehoz egy OpenAPI-specifikációt, és társítja az API Center megfelelő beépített API-jával.

 info    Plugin ApiCenterOnboardingPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through

 req   ╭ DELETE https://jsonplaceholder.typicode.com/posts/1
 api   ╰ Passed through
○ Stopped recording
 info    Creating OpenAPI spec from recorded requests...
 info    Created OpenAPI spec file jsonplaceholder.typicode.com-20240614104931.json
 info    Checking if recorded API requests belong to APIs in API Center...
 info    Loading APIs from API Center...
 info    Loading API definitions from API Center...
 info    New APIs that aren't registered in Azure API Center:

https://jsonplaceholder.typicode.com:
  DELETE https://jsonplaceholder.typicode.com/posts/1
 info    Creating new API entries in API Center...
 info      Creating API new-jsonplaceholder-typicode-com-1718354977 for https://jsonplaceholder.typicode.com...
 info    DONE

Képernyőkép az Azure API Centerről, amelyen egy újonnan létrehozott API látható Egy OpenAPI-specifikációval.

Összegzés

A Dev Proxy és annak ApiCenterOnboardingPluginhasználatával ellenőrizheti, hogy az alkalmazás árnyék API-kat használ-e. A beépülő modul elemzi az alkalmazás API-kéréseit, és jelentéseket készít az Azure API Centerben nem regisztrált API-kérésekről. A beépülő modul lehetővé teszi, hogy könnyedén előkészítse a hiányzó API-kat az API Centerbe. A beépülő modul és a ApiCenterOnboardingPlugin OpenApiSpecGeneratorPluginbővítmény kombinálásával automatikusan létrehozhat OpenAPI-specifikációkat az újonnan létrehozott API-khoz. Ezt az ellenőrzést manuálisan is futtathatja, vagy integrálhatja a CI-/CD-folyamattal, hogy az alkalmazás regisztrált API-kat használjon, mielőtt éles környezetbe bocsátanák.

További információ