Dela via


Så här hittar du skugg-API:er

Med Hjälp av Azure API Center kan du katalogisera API:er som används i din organisation. När som helst kan du se vilka API:er du använder i din organisation. Du kan också se var API:et finns i dess livscykel och vem du ska kontakta om det finns problem. Kort och kort, att ha en uppdaterad katalog med API:er hjälper dig att förbättra styrnings-, efterlevnads- och säkerhetsstatusen.

När du skapar din app, särskilt om du integrerar nya scenarier, kanske du använder API:er som inte är registrerade i Azure API Center. Dessa API:er kallas skugg-API:er. Skugg-API:er är API:er som inte är registrerade i din organisation. De kan vara API:er som ännu inte har registrerats, eller så kan de vara API:er som inte är avsedda att användas i din organisation.

Om du vill kontrollera om din app använder skugg-API:er kan du använda plugin-programmet ApiCenterOnboardingPlugin . Det här plugin-programmet analyserar API-begäranden från din app och rapporterar om api:er som inte är registrerade i API Center. Dessutom kan den registrera nya API:er direkt till Azure API Center.

Skärmbild av en kommandotolk som visar Dev Proxy som kontrollerar om registrerade API-begäranden är registrerade i Azure API Center.

Innan du börjar

För att identifiera skugg-API:er måste du ha en Azure API Center-instans med information om de API:er som du använder i din organisation.

Skapa en Azure API Center-instans

Innan du börjar skapar du en Azure API Center-instans och registrerar API:er som du använder i din organisation.

Skärmbild av Azure API Center med flera API:er som används i organisationen.

ApiCenterOnboardingPlugin Använder den här informationen för att kontrollera om API:erna, som appen använder, är registrerade i din organisation.

Kopiera API Center-information

På sidan Översikt för Azure API Center-instans kopierar du namnet på API Center-instansen, namnet på resursgruppen och prenumerations-ID :t. Du behöver den här informationen för att konfigurera så att den ApiCenterOnboardingPlugin kan ansluta till din Azure API Center-instans.

Skärmbild av översiktssidan för Azure API Center med flera egenskaper markerade.

Konfigurera Dev Proxy

För att kontrollera om din app använder skugg-API:er måste du aktivera ApiCenterOnboardingPlugin i konfigurationsfilen för Dev Proxy. Om du vill skapa en rapport över API:er som appen använder lägger du till en reporter.

Aktivera ApiCenterOnboardingPlugin

devproxyrc.json Lägg till följande konfiguration i filen:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterOnboardingPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.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
  }
}

I subscriptionId, resourceGroupName, och serviceName-egenskaperna anger du information om din Azure API Center-instans.

I egenskapen urlsToWatch anger du de URL:er som appen använder.

Tips

Använd Tillägget Dev Proxy Toolkit Visual Studio Code för att enkelt hantera Dev Proxy-konfiguration.

Lägga till en reporter

ApiCenterOnboardingPlugin Genererar en rapport över API:er som din app använder. Om du vill visa den här rapporten lägger du till en reporter i dev proxy-konfigurationsfilen. Dev Proxy erbjuder flera reportrar. I det här exemplet använder du oformaterad textreporter.

devproxyrc.json Uppdatera filen med en referens till oformaterad textreporter:

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

Kontrollera om appen använder skugg-API:er

Om du vill kontrollera om din app använder skugg-API:er ansluter du till din Azure-prenumeration, kör Dev Proxy och låter den fånga upp API-begäranden från din app. Dev Proxy jämför sedan informationen om API-begäranden med informationen från Azure API Center och rapporter om eventuella API:er som inte är registrerade i API Center.

Ansluta till din Azure-prenumeration

Dev Proxy använder information från Azure API Center för att avgöra om din app använder skugg-API:er. För att få den här informationen behöver den en anslutning till din Azure-prenumeration. Du kan ansluta till din Azure-prenumeration på flera sätt.

Kör Dev Proxy

När du har anslutit till din Azure-prenumeration startar du Dev Proxy. Om du startar Dev Proxy från samma mapp där devproxyrc.json filen finns läser den in konfigurationen automatiskt. Annars anger du sökvägen till konfigurationsfilen med hjälp av --config-file alternativet .

När Dev Proxy startar kontrollerar den att den kan ansluta till din Azure-prenumeration. När anslutningen lyckas visas ett meddelande som liknar:

 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

Tryck på r för att börja spela in API-begäranden från din app.

Använda appen

Använd din app som vanligt. Dev Proxy fångar upp API-begäranden och lagrar information om dem i minnet. På kommandoraden där Dev Proxy körs bör du se information om API-begäranden som appen gör.

 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

Kontrollera skugg-API:er

Stoppa inspelningen genom att trycka på s. Dev Proxy ansluter till API Center-instansen och jämför informationen om begäranden med informationen från 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...

När Dev Proxy har slutfört analysen skapas en rapport i en fil med namnet ApiCenterOnboardingPlugin_PlainTextReporter.txt med följande innehåll:

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

Integrera skugg-API:er automatiskt

Kan ApiCenterOnboardingPlugin inte bara identifiera skugg-API:er, utan också automatiskt registrera dem i API Center. Uppdatera createApicEntryForNewApis till true i konfigurationsfilen för Dev Proxy för att automatiskt registrera skugg-API:er.

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

När du kör Dev Proxy med createApicEntryForNewApis inställt på trueskapas automatiskt nya API-poster i Azure API Center för de skugg-API:er som identifieras.

Skärmbild av API Center som visar ett nyligen registrerat API.

Implementera skugg-API:er automatiskt med OpenAPI-specifikation

När du väljer att automatiskt registrera skugg-API:er till API Center kan du låta Dev Proxy generera OpenAPI-specifikationen för API:et. Registrering av API:er med OpenAPI-specifikationer påskyndar registrering av saknade slutpunkter och ger dig nödvändig information om API:et. När ApiCenterOnboardingPlugin upptäcker att Dev Proxy har skapat en ny OpenAPI-specifikation kopplas den till det motsvarande onboardade API:et i API Center.

Om du vill generera OpenAPI-specifikationer automatiskt för registrerade API:er uppdaterar du Dev Proxy-konfigurationen så att den OpenApiSpecGeneratorPlugininnehåller .

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

Viktigt!

Dev Proxy kör plugin-program i den ordning de registreras i konfigurationen. Du måste först registrera OpenApiSpecGeneratorPlugin så att den kan skapa OpenAPI-specifikationer innan ApiCenterOnboardingPlugin tar in nya API:er.

När du kör Dev Proxy med den här konfigurationen skapas automatiskt nya API-poster i Azure API Center för de skugg-API:er som identifieras. För varje nytt API genererar Dev Proxy en OpenAPI-specifikation och associerar den med motsvarande registrerade API i 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    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

Skärmbild av Azure API Center som visar ett nyligen registrerat API med en OpenAPI-specifikation.

Sammanfattning

Med hjälp av ApiCenterOnboardingPluginkan du kontrollera om din app använder skugg-API:er. Plugin-programmet analyserar API-begäranden från din app och rapporterar om api-begäranden som inte är registrerade i Azure API Center. Med plugin-programmet kan du enkelt registrera saknade API:er i API Center. Genom att kombinera ApiCenterOnboardingPlugin plugin-programmet med OpenApiSpecGeneratorPluginkan du automatiskt generera OpenAPI-specifikationer för de nyligen registrerade API:erna. Du kan köra den här kontrollen manuellt eller integrera med din CI/CD-pipeline för att säkerställa att din app använder registrerade API:er innan den släpps till produktion.

Mer information