Á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.
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.
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
}
}
subscriptionId
A , 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
true
futtatja, az automatikusan új API-bejegyzéseket hoz létre az Azure API Centerben az általa észlelt árnyék API-khoz.
Á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
Összegzés
A Dev Proxy és annak ApiCenterOnboardingPlugin
haszná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
OpenApiSpecGeneratorPlugin
bő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.