Freigeben über


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.

Screenshot einer Eingabeaufforderung, auf dem Dev Proxy überprüft, ob die aufgezeichneten API-Anforderungen in Azure API Center registriert sind

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.

Screenshot des Azure API Center mit mehreren APIs, die in der Organisation verwendet werden.

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.

Screenshot der Seite „Übersicht“ von Azure API Center mit mehreren hervorgehobenen Eigenschaften

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.

Screenshot von API Center mit einer neu integrierten API

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

Screenshot von Azure API Center mit einer neu integrierten API mit einer OpenAPI-Spezifikation

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.

Weitere Informationen