So finden Sie Schatten-APIs
Mithilfe des Azure API Center können Sie in Ihrer Organisation verwendete APIs katalogisieren. Sie können jederzeit feststellen, welche APIs Sie in Ihrer Organisation verwenden. Sie können auch feststellen, wo sich die API im Lebenszyklus befindet und wen Sie kontaktieren müssen, wenn Probleme auftreten. Sie können also den Governance-, Compliance- und Sicherheitsstatus verbessern, wenn Sie über einen aktuellen API-Katalog verfügen.
Wenn Sie Ihre App insbesondere bei der Integration neuer Szenarios erstellen, verwenden Sie möglicherweise APIs, die nicht in Azure API Center registriert sind. Diese APIs werden als Schatten-APIs bezeichnet. Schatten-APIs sind APIs, die nicht in Ihrer Organisation registriert sind. Dabei könnte es sich um APIs handeln, die noch nicht registriert sind oder die in Ihrer Organisation nicht verwendet werden sollen.
Um zu überprüfen, ob Ihre App Schatten-APIs verwendet, können Sie das ApiCenterOnboardingPlugin
Plug-In verwenden. Dieses Plug-In analysiert API-Anforderungen aus Ihrer App und meldet alle APIs, die nicht im API Center registriert sind. Darüber hinaus kann sie neue APIs direkt in Das Azure API Center integrieren.
Vor der Installation
Um Schatten-APIs zu erkennen, benötigen Sie eine Azure API Center-Instanz mit Informationen zu den APIs, die Sie in Ihrer Organisation verwenden.
Erstellen einer Azure API Center-Instanz
Erstellen Sie zunächst eine Azure API Center-Instanz, und registrieren Sie APIs, die Sie in Ihrer Organisation verwenden.
Anhand ApiCenterOnboardingPlugin
dieser Informationen können Sie überprüfen, ob die APIs, die Ihre App verwendet, in Ihrer Organisation registriert sind.
Kopieren von API Center-Informationen
Kopieren Sie auf der Seite „Übersicht“ der Azure API Center-Instanz den Namen der API Center-Instanz sowie den Namen der Ressourcengruppe und die Abonnement-ID. Diese Informationen benötigen Sie, um ApiCenterOnboardingPlugin
so zu konfigurieren, dass eine Verbindung mit Ihrer Azure API Center-Instanz hergestellt werden kann.
Konfigurieren von Dev Proxy
Um zu überprüfen, ob Ihre App Schatten-APIs verwendet, müssen Sie in der Konfigurationsdatei für Dev Proxy das ApiCenterOnboardingPlugin
-Plug-In aktivieren. Um einen Bericht der APIs zu erstellen, die Ihre App verwendet, fügen Sie einen Reporter hinzu.
Aktivieren des ApiCenterOnboardingPlugin
-Plug-Ins
Fügen Sie in der Datei devproxyrc.json
die folgende Konfiguration hinzu:
{
"$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
}
}
Geben Sie in den Eigenschaften subscriptionId
, resourceGroupName
und serviceName
die Informationen zu Ihrer Azure API Center-Instanz an.
Geben Sie in der Eigenschaft urlsToWatch
die URLs an, die Ihre App verwendet.
Tipp
Verwenden Sie die Visual Studio Code-Erweiterung Dev Proxy Toolkit, um die Dev Proxy-Konfiguration mühelos zu verwalten.
Hinzufügen eines Reporters
Das ApiCenterOnboardingPlugin
-Plug-In erstellt einen Bericht der APIs, die Ihre App verwendet. Fügen Sie ihrer Konfigurationsdatei für Dev Proxy einen Reporter hinzu, um diesen Bericht anzuzeigen. Dev Proxy bietet mehrere Reporter. In diesem Beispiel verwenden Sie den Nur-Text-Reporter.
Aktualisieren Sie Ihre devproxyrc.json
-Datei mit einem Verweis auf den Nur-Text-Reporter:
{
"$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
}
}
Überprüfen, ob Ihre App Schatten-APIs verwendet
Um zu überprüfen, ob Ihre App Schatten-APIs verwendet, stellen Sie eine Verbindung mit Ihrem Azure-Abonnement her, führen Sie Dev Proxy aus, und lassen Sie Dev Proxy die API-Anforderungen von Ihrer App abfangen. Dev Proxy vergleicht daraufhin die Informationen zu den API-Anforderungen mit den Informationen aus Azure API Center und meldet alle APIs, die nicht in API Center registriert sind.
Verbinden mit Ihrem Azure-Abonnement
Dev Proxy verwendet Informationen aus Azure API Center, um zu ermitteln, ob Ihre App Schatten-APIs verwendet. Um diese Informationen zu erhalten, benötigt sie eine Verbindung mit Ihrem Azure-Abonnement. Es bestehen verschiedene Möglichkeiten, eine Verbindung mit Ihrem Azure-Abonnement herzustellen.
Ausführen von Dev Proxy
Starten Sie Dev Proxy, nachdem Sie eine Verbindung mit Ihrem Azure-Abonnement hergestellt haben. Wenn Sie Dev Proxy aus demselben Ordner starten, in dem sich Ihre devproxyrc.json
-Datei befindet, wird die Konfiguration automatisch geladen. Geben Sie andernfalls mithilfe der Option --config-file
den Pfad zur Konfigurationsdatei an.
Beim Starten von Dev Proxy wird überprüft, ob eine Verbindung mit Ihrem Azure-Abonnement hergestellt werden kann. Wenn die Verbindung erfolgreich hergestellt werden kann, wird eine Meldung wie die folgende angezeigt:
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
Drücken Sie R, um die Aufzeichnung der API-Anforderungen von Ihrer App zu starten.
Verwenden der App
Verwenden Sie Ihre App wie gewohnt. Dev Proxy fängt die API-Anforderungen ab und speichert Informationen zu ihnen im Arbeitsspeicher. In der Befehlszeile, in der Dev Proxy ausgeführt wird, sollten Informationen zu API-Anforderungen angezeigt werden, die Ihre App ausführt.
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
Überprüfen von Schatten-APIs
Beenden Sie die Aufzeichnung, indem Sie s drücken. Dev Proxy stellt eine Verbindung mit der API Center-Instanz her und vergleicht die Informationen zu den Anforderungen mit den Informationen aus API Center.
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...
Nach Abschluss der Analyse erstellt Dev Proxy einen Bericht in einer Datei namens ApiCenterOnboardingPlugin_PlainTextReporter.txt
mit dem folgenden Inhalt:
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
Automatisches Integrieren von Schatten-APIs
Das ApiCenterOnboardingPlugin
-Plug-In kann nicht allein Schatten-APIs erkennen, sondern diese darüber hinaus automatisch in API Center integrieren. Um Schatten-APIs automatisch zu integrieren, legen Sie in der Konfigurationsdatei für Dev Proxy createApicEntryForNewApis
auf true
fest.
{
"$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
}
}
Bei der Ausführung mit createApicEntryForNewApis
auf true
erstellt Dev Proxy in Azure API Center automatisch neue API-Einträge für die erkannten Schatten-APIs.
Automatisches Integrieren von Schatten-APIs mit der OpenAPI-Spezifikation
Wenn Sie sich dazu entscheiden, Schatten-APIs automatisch in API Center zu integrieren, kann Dev Proxy die OpenAPI-Spezifikation für die API generieren. Durch das Integrieren von APIs mit OpenAPI-Spezifikationen wird die Integration fehlender Endpunkte beschleunigt, und Sie erhalten die erforderlichen Informationen zur API. Wenn das ApiCenterOnboardingPlugin
-Plug-In erkennt, dass Dev Proxy eine neue OpenAPI-Spezifikation erstellt hat, ordnet es diese der entsprechenden integrierten API in API Center zu.
Aktualisieren Sie die Dev Proxy-Konfiguration so, dass das OpenApiSpecGeneratorPlugin
-Plug-In enthalten ist, um OpenAPI-Spezifikationen für integrierte APIs automatisch zu generieren.
{
"$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
}
}
Wichtig
Dev Proxy führt Plug-Ins in der Reihenfolge aus, in der sie in der Konfiguration registriert sind. Sie müssen das OpenApiSpecGeneratorPlugin
-Plug-In zuerst registrieren, damit es OpenAPI-Spezifikationen erstellen kann, bevor das ApiCenterOnboardingPlugin
-Plug-In neue APIs integriert.
Bei der Ausführung mit dieser Konfiguration erstellt Dev Proxy in Azure API Center automatisch neue API-Einträge für die erkannten Schatten-APIs. Dev Proxy generiert für jede neue API eine OpenAPI-Spezifikation und ordnet diese in API Center der entsprechenden integrierten API zu.
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
Zusammenfassung
Mithilfe des ApiCenterOnboardingPlugin
-Steuerelements können Sie überprüfen, ob Ihre App Schatten-APIs verwendet. Das Plug-In analysiert API-Anforderungen aus Ihrer App und meldet alle API-Anforderungen, die nicht in Azure API Center registriert sind. Mit dem Plug-In können Sie fehlenden APIs mühelos in API Center integrieren. Durch die Kombination des ApiCenterOnboardingPlugin
-Plug-Ins mit dem OpenApiSpecGeneratorPlugin
-Plug-In können Sie OpenAPI-Spezifikationen für die neu integrierten APIs automatisch generieren. Sie können diese Überprüfung manuell ausführen oder mit ihrer CI/CD-Pipeline integrieren, um sicherzustellen, dass Ihre App registrierte APIs verwendet, bevor Sie sie für die Produktion freigeben.