Udostępnij za pośrednictwem


Jak sprawdzić, czy moja aplikacja korzysta z interfejsów API na poziomie produkcyjnym

Podczas kompilowania aplikacji możesz używać interfejsów API, które są nadal w wersji zapoznawczej. Interfejsy API w wersji zapoznawczej są często używane podczas integracji z nowymi funkcjami, które są kompilowane wraz z aplikacją. Przed wydaniem aplikacji do środowiska produkcyjnego upewnij się, że używasz interfejsów API na poziomie produkcyjnym. Jeśli używasz stabilnych interfejsów API, które są obsługiwane i objęte umowami dotyczącymi poziomu usług (SLA), twoja aplikacja jest bardziej niezawodna.

Aby sprawdzić, czy aplikacja korzysta z interfejsów API na poziomie produkcyjnym, możesz użyć wtyczki ApiCenterProductionVersionPlugin . Ta wtyczka porównuje informacje o żądaniach interfejsu API z aplikacji z informacjami z centrum interfejsu API platformy Azure i raportami dotyczącymi wszystkich żądań interfejsu API nieprodukcyjnych. Zaleca również wersję produkcyjną używanych interfejsów API.

Zrzut ekranu konsoli pokazujący, jak Dev Proxy sprawdza, czy zarejestrowane żądania API są zgodne z interfejsami API wersji produkcyjnej zarejestrowanymi w Azure API Center.

Przed rozpoczęciem

Aby wykryć żądania API dotyczące środowiska nieprodukcyjnego, musisz mieć wystąpienie Azure API Management zawierające informacje o używanych w twojej organizacji interfejsach API.

Utwórz wystąpienie Azure API Center

Przed rozpoczęciem utwórz instancję Azure API Center i zarejestruj interfejsy API używane w organizacji. Dla każdego interfejsu API zdefiniuj używane wersje i określ ich etap cyklu życia.

Zrzut ekranu centrum interfejsu API platformy Azure przedstawiający interfejs API z różnymi wersjami

Te ApiCenterProductionVersionPlugin informacje są używane do sprawdzania, czy interfejsy API, których używa aplikacja, należą do interfejsów API produkcyjnych lub nieprodukcyjnych.

Skopiuj informacje z Centrum API

Na stronie Przegląd wystąpienia centrum API platformy Azure skopiuj nazwę wystąpienia centrum API, nazwę grupy zasobów i identyfikator subskrypcji. Potrzebujesz tych informacji, aby skonfigurować ApiCenterProductionVersionPlugin, aby mogło się połączyć z wystąpieniem Azure API Center.

Zrzut ekranu przedstawiający stronę przeglądu centrum api platformy Azure z wyróżnionymi kilkoma właściwościami

Konfigurowanie serwera proxy deweloperskiego

Aby sprawdzić, czy aplikacja korzysta z interfejsów API na poziomie produkcyjnym, należy włączyć element ApiCenterProductionVersionPlugin w pliku konfiguracji serwera proxy deweloperów. Aby utworzyć raport interfejsów API używanych przez aplikację, dodaj reportera.

Włącz ApiCenterProductionVersionPlugin

devproxyrc.json W pliku dodaj następującą konfigurację:

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

We właściwościach subscriptionId, resourceGroupName, i serviceName podaj informacje o wystąpieniu centrum interfejsu API platformy Azure.

urlsToWatch We właściwości określ adresy URL używane przez aplikację.

Napiwek

Użyj rozszerzenia Dev Proxy Toolkit dla programu Visual Studio Code, aby łatwo zarządzać konfiguracją Dev Proxy.

Dodawanie reportera

Element ApiCenterProductionVersionPlugin tworzy raport interfejsów API używanych przez aplikację. Aby wyświetlić ten raport, dodaj reportera do pliku konfiguracji proxy deweloperskiego. Dev Proxy oferuje kilku raportujących. W tym przykładzie używasz reportera zwykłego tekstu.

Zaktualizuj plik devproxyrc.json przy użyciu odwołania do reportera zwykłego tekstu.

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

Sprawdzanie, czy aplikacja korzysta z interfejsów API na poziomie produkcyjnym

Aby sprawdzić, czy aplikacja korzysta z interfejsów API na poziomie produkcyjnym, musisz nawiązać połączenie z subskrypcją platformy Azure, uruchomić serwer proxy deweloperów i zezwolić na przechwytywanie żądań interfejsu API z aplikacji. Następnie serwer proxy deweloperów porównuje informacje o żądaniach interfejsu API z informacjami z centrum interfejsów API platformy Azure i raportami dotyczącymi dowolnych interfejsów API nieprodukcyjnych.

Nawiązywanie połączenia z subskrypcją platformy Azure

Proxy deweloperskie używa informacji z Centrum API platformy Azure, aby określić, czy używane API są na poziomie produkcyjnym. Aby uzyskać te informacje, potrzebuje połączenia z subskrypcją platformy Azure. Możesz nawiązać połączenie z subskrypcją platformy Azure na kilka sposobów.

Uruchamianie serwera proxy deweloperskiego

Po nawiązaniu połączenia z subskrypcją platformy Azure uruchom usługę Dev Proxy. Jeśli uruchomisz Dev Proxy z tego samego folderu, w którym znajduje się plik devproxyrc.json, to automatycznie ładuje on konfigurację. W przeciwnym razie określ ścieżkę do pliku konfiguracji przy użyciu --config-file opcji .

Po uruchomieniu usługi Dev Proxy sprawdza, czy może nawiązać połączenie z subskrypcją platformy Azure. Po pomyślnym nawiązaniu połączenia zostanie wyświetlony komunikat podobny do następującego:

 info    Plugin ApiCenterProductionVersionPlugin 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

Naciśnij pozycję r , aby rozpocząć nagrywanie żądań interfejsu API z aplikacji.

Użyj swojej aplikacji

Użyj aplikacji, jak zwykle. Dev Proxy przechwytuje żądania interfejsu API i przechowuje informacje o nich w pamięci. W wierszu polecenia, w którym jest uruchamiany serwer proxy deweloperów, powinny zostać wyświetlone informacje o żądaniach interfejsu API, które wykonuje Aplikacja.

 info    Plugin ApiCenterProductionVersionPlugin 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-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through

Sprawdzanie wersji interfejsu API

Zatrzymaj nagrywanie, naciskając s. Dev Proxy łączy się z instancją API Center i porównuje dane dotyczące żądań z informacjami z API Center.

 info    Plugin ApiCenterProductionVersionPlugin 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-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through
○ Stopped recording
 info    Checking if recorded API requests use production APIs as defined in API Center...
 info    Loading APIs from API Center...
 info    Analyzing recorded requests...
 warn    Request GET https://jsonplaceholder.typicode.com/users?api-version=beta uses API version beta which is defined as Preview. Upgrade to a production version of the API. Recommended versions: v1.0
 info    DONE

Gdy Dev Proxy zakończy analizę, tworzy raport w pliku o nazwie ApiCenterProductionVersionPlugin_PlainTextReporter.txt z następującą zawartością:

Non-production APIs:

  GET https://jsonplaceholder.typicode.com/users?api-version=beta
  
Production APIs:

  GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0

Podsumowanie

Korzystając z elementu ApiCenterProductionVersionPlugin, możesz sprawdzić, czy aplikacja korzysta z interfejsów API na poziomie produkcyjnym. Wtyczka porównuje informacje o żądaniach interfejsu API z aplikacji z informacjami z centrum interfejsu API platformy Azure i raportami dotyczącymi wszystkich żądań interfejsu API nieprodukcyjnych. Zaleca również wersję produkcyjną używanych interfejsów API. Weryfikowanie interfejsów API używanych przez aplikację pomaga upewnić się, że aplikacja korzysta ze stabilnych interfejsów API, które są obsługiwane i objęte umowami SLA, dzięki czemu aplikacja będzie bardziej niezawodna. Możesz uruchomić tę kontrolę ręcznie lub zintegrować ją z potokiem CI/CD, aby upewnić się, że aplikacja korzysta z produkcyjnych API przed jej wdrożeniem do środowiska produkcyjnego.

Więcej informacji