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.
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.
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.
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 , resourceGroupName
i serviceName
podaj informacje o wystąpieniu subscriptionId
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 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.