Dela via


Identifiera skugg-API:er med dev proxy

Med Azure API Center katalogiserar du API:er som används i din organisation. På så sätt kan du se vilka API:er du använder, 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.

Ett sätt att söka efter skugg-API:er är att använda Dev Proxy. Dev Proxy är en API-simulator som fångar upp och analyserar API-begäranden från program. En funktion i Dev Proxy är att kontrollera om de snappade API-begäranden tillhör API:er som är registrerade i 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. Om du inte redan har skapat ett kan du läsa Snabbstart: Skapa ditt API-center. Dessutom måste du installera Dev Proxy.

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 Dev Proxy ApiCenterOnboardingPlugin så att den 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/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
  }
}

subscriptionIdI egenskaperna , resourceGroupNameoch serviceName anger du information om din Azure API Center-instans.

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

Dricks

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/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
  }
}

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

Registrera skugg-API:er automatiskt

Kan ApiCenterOnboardingPlugin inte bara identifiera skugg-API:er, utan också automatiskt registrera dem i API Center. Om du vill registrera skugg-API:er automatiskt uppdaterar du till truei konfigurationsfilen createApicEntryForNewApis Dev Proxy .

{
  "$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
  }
}

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.

Registrera 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 identifierar ApiCenterOnboardingPlugin , att Dev Proxy skapade en ny OpenAPI-specifikation, associeras den med motsvarande registrerade API 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/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
  }
}

Viktigt!

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

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 Dev Proxy och dess ApiCenterOnboardingPluginkan du kontrollera om appen 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