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 przedstawiający konsolę przedstawiającą sprawdzanie, czy zarejestrowane żądania interfejsu API są zgodne z interfejsami API wersji produkcyjnej zarejestrowanymi w centrum interfejsów API platformy Azure.

Przed rozpoczęciem

Aby wykryć żądania interfejsu API nieprodukcyjnego, musisz mieć wystąpienie centrum interfejsów API platformy Azure z informacjami o interfejsach API używanych w organizacji.

Tworzenie wystąpienia centrum interfejsu API platformy Azure

Przed rozpoczęciem utwórz wystąpienie centrum interfejsów API platformy Azure 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.

Kopiowanie informacji centrum interfejsu API

Na stronie Przegląd wystąpienia centrum interfejsu API platformy Azure skopiuj nazwę wystąpienia centrum interfejsu API, nazwę grupy zasobów i identyfikator subskrypcji. Te informacje są potrzebne do skonfigurowania ApiCenterProductionVersionPlugin elementu , aby można było nawiązać połączenie z wystąpieniem centrum interfejsu API platformy Azure.

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/microsoft/dev-proxy/main/schemas/v0.19.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 , resourceGroupNamei serviceName podaj informacje o wystąpieniu subscriptionIdcentrum 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 programu Visual Studio Code, aby łatwo zarządzać konfiguracją serwera proxy deweloperów.

Dodawanie reportera

Element ApiCenterProductionVersionPlugin tworzy raport interfejsów API używanych przez aplikację. Aby wyświetlić ten raport, dodaj reportera do pliku konfiguracji serwera proxy deweloperów. Serwer proxy deweloperów oferuje kilku reporterów. W tym przykładzie użyjesz reportera zwykłego tekstu.

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

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.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

Serwer proxy deweloperów używa informacji z Centrum interfejsów API platformy Azure, aby określić, czy używane interfejsy 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 serwer proxy dewelopera z tego samego folderu, w którym devproxyrc.json znajduje się plik, automatycznie ładuje 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żywanie aplikacji

Użyj aplikacji, jak zwykle. Serwer proxy deweloperów 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. Serwer proxy dewelopera łączy się z wystąpieniem centrum interfejsu API i porównuje informacje o żądaniach z informacjami z Centrum interfejsu API.

 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 serwer proxy deweloperów zakończy analizę, tworzy raport w pliku o nazwie o ApiCenterProductionVersionPlugin_PlainTextReporter.txt następującej 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. Tę kontrolę można uruchomić ręcznie lub zintegrować z potokiem ciągłej integracji/ciągłego wdrażania, aby upewnić się, że aplikacja korzysta z interfejsów API na poziomie produkcyjnym przed udostępnieniem jej do środowiska produkcyjnego.

Więcej informacji