Odnajdywanie interfejsów API w tle przy użyciu serwera proxy deweloperskiego
Interfejsy API wykazu używane w organizacji przy użyciu centrum interfejsów API platformy Azure. Dzięki temu można określić, które interfejsy API są używane, gdzie interfejs API znajduje się w jego cyklu życia i kto ma się skontaktować, jeśli występują problemy. Krótko mówiąc, posiadanie aktualnego wykazu interfejsów API pomaga poprawić poziom ładu, zgodności i zabezpieczeń.
Podczas kompilowania aplikacji, zwłaszcza jeśli integrujesz nowe scenariusze, możesz używać interfejsów API, które nie są zarejestrowane w Centrum interfejsów API platformy Azure. Te interfejsy API są nazywane interfejsami API w tle. Interfejsy API w tle to interfejsy API, które nie są zarejestrowane w organizacji. Mogą to być interfejsy API, które nie zostały jeszcze zarejestrowane lub mogą być interfejsami API, które nie mają być używane w organizacji.
Jednym ze sposobów sprawdzania pod kątem interfejsów API w tle jest użycie serwera proxy deweloperskiego. Serwer proxy deweloperów to symulator interfejsu API, który przechwytuje i analizuje żądania interfejsu API z aplikacji. Jedną z funkcji serwera proxy deweloperów jest sprawdzenie, czy przechwycone żądania interfejsu API należą do interfejsów API zarejestrowanych w Centrum interfejsów API.
Przed rozpoczęciem
Aby wykryć interfejsy API w tle, musisz mieć wystąpienie centrum interfejsów API platformy Azure z informacjami o interfejsach API używanych w organizacji. Jeśli jeszcze go nie utworzono, zobacz Szybki start: tworzenie centrum interfejsu API. Ponadto należy zainstalować serwer proxy deweloperów.
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 serwera proxy ApiCenterOnboardingPlugin
deweloperskiego, 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 w tle, należy włączyć element ApiCenterOnboardingPlugin
w pliku konfiguracji serwera proxy deweloperów. Aby utworzyć raport interfejsów API używanych przez aplikację, dodaj reportera.
Włącz ApiCenterOnboardingPlugin
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": "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
}
}
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 ApiCenterOnboardingPlugin
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": "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
}
}
Sprawdzanie, czy aplikacja korzysta z interfejsów API w tle
Aby sprawdzić, czy aplikacja korzysta z interfejsów API w tle, połącz się z subskrypcją platformy Azure, uruchom serwer proxy deweloperów i pozwól jej przechwycić żądania 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 wszystkich interfejsów API, które nie są zarejestrowane w Centrum interfejsów API.
Nawiązywanie połączenia z subskrypcją platformy Azure
Serwer proxy deweloperów używa informacji z Centrum interfejsów API platformy Azure w celu określenia, czy aplikacja korzysta z interfejsów API w tle. 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 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
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 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
Sprawdzanie interfejsów API w tle
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 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...
Gdy serwer proxy deweloperów zakończy analizę, tworzy raport w pliku o nazwie o ApiCenterOnboardingPlugin_PlainTextReporter.txt
następującej zawartości:
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
Automatyczne dołączanie interfejsów API w tle
Narzędzie ApiCenterOnboardingPlugin
może nie tylko wykrywać interfejsy API w tle, ale także automatycznie dołączać je do centrum interfejsów API. Aby automatycznie dołączać interfejsy API w tle, w pliku konfiguracji serwera proxy deweloperów zaktualizuj element createApicEntryForNewApis
na true
.
{
"$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
}
}
Po uruchomieniu serwera proxy deweloperskiego z ustawioną wartością createApicEntryForNewApis
true
automatycznie tworzy nowe wpisy interfejsu API w centrum interfejsów API platformy Azure dla wykrytych przez nią interfejsów API w tle.
Automatyczne dołączanie interfejsów API w tle przy użyciu specyfikacji interfejsu OpenAPI
Jeśli zdecydujesz się automatycznie dołączać interfejsy API w tle do Centrum interfejsów API, możesz wygenerować specyfikację interfejsu OpenAPI dla interfejsu API. Dołączanie interfejsów API przy użyciu specyfikacji interfejsu OpenAPI przyspiesza dołączanie brakujących punktów końcowych i dostarczanie niezbędnych informacji o interfejsie API. Po wykryciu ApiCenterOnboardingPlugin
, że serwer proxy deweloperów utworzył nową specyfikację interfejsu OpenAPI, kojarzy go z odpowiednim dołączonym interfejsem API w Centrum interfejsu API.
Aby automatycznie wygenerować specyfikacje interfejsu OpenAPI dla dołączonych interfejsów API, zaktualizuj konfigurację serwera proxy deweloperskiego, aby uwzględnić element OpenApiSpecGeneratorPlugin
.
{
"$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
}
}
Ważne
Serwer proxy deweloperów wykonuje wtyczki w kolejności, w której są zarejestrowane w konfiguracji. Musisz zarejestrować pierwszy element OpenApiSpecGeneratorPlugin
, aby można było utworzyć specyfikacje interfejsu ApiCenterOnboardingPlugin
OpenAPI przed dołączeniami nowych interfejsów API.
Po uruchomieniu serwera proxy deweloperskiego z tą konfiguracją automatycznie tworzy nowe wpisy interfejsu API w centrum interfejsów API platformy Azure dla wykrytych przez nią interfejsów API w tle. Dla każdego nowego interfejsu API serwer proxy dewelopera generuje specyfikację interfejsu OpenAPI i kojarzy ją z odpowiednim dołączonym interfejsem API w Centrum interfejsu API.
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
Podsumowanie
Korzystając z serwera proxy deweloperskiego i jego ApiCenterOnboardingPlugin
usługi , możesz sprawdzić, czy aplikacja korzysta z interfejsów API w tle. Wtyczka analizuje żądania interfejsu API z aplikacji i raportuje żądania interfejsu API, które nie są zarejestrowane w centrum interfejsu API platformy Azure. Wtyczka umożliwia łatwe dołączanie brakujących interfejsów API do Centrum interfejsów API. Łącząc wtyczkę ApiCenterOnboardingPlugin
z interfejsem , można automatycznie wygenerować specyfikacje interfejsu OpenApiSpecGeneratorPlugin
OpenAPI dla nowo dołączonych interfejsów API. 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 zarejestrowanych interfejsów API przed udostępnieniem jej do środowiska produkcyjnego.