Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Za pomocą centrum interfejsów API platformy Azure można katalogować interfejsy API używane w organizacji. W dowolnym momencie możesz określić, które interfejsy API są używane w organizacji. Możesz również określić, 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ć pozycję w zakresie ładu, zgodności i bezpieczeństwa.
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 ukrytymi interfejsami API. Ukryte interfejsy API 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.
Aby sprawdzić, czy aplikacja korzysta z ukrytych interfejsów API, możesz użyć ApiCenterOnboardingPlugin
wtyczki. Ta wtyczka analizuje żądania API z Twojej aplikacji i zgłasza wszystkie interfejsy API, które nie są zarejestrowane w Centrum API. Ponadto można bezpośrednio dołączyć nowe interfejsy API do Centrum interfejsów API platformy Azure.
Przed rozpoczęciem
Aby wykryć shadow APIs, musisz mieć instancję Azure API Center z informacjami o interfejsach API używanych w organizacji.
Utwórz wystąpienie Centrum API platformy Azure
Przed rozpoczęciem utwórz wystąpienie Azure API Center i zarejestruj interfejsy API używane w organizacji.
Te ApiCenterOnboardingPlugin
informacje służą do sprawdzania, czy interfejsy API, z których korzysta aplikacja, są zarejestrowane w organizacji.
Skopiuj informacje z Centrum API
Na stronie przeglądu wystąpienia Azure API Center, skopiuj nazwę wystąpienia, nazwę grupy zasobów oraz identyfikator subskrypcji. Te informacje są potrzebne do skonfigurowania ApiCenterOnboardingPlugin
, aby można było nawiązać połączenie z wystąpieniem Azure API Center.
Konfigurowanie serwera proxy deweloperskiego
Aby sprawdzić, czy aplikacja korzysta z shadow APIs, należy włączyć element ApiCenterOnboardingPlugin
w pliku konfiguracyjnym Dev Proxy. 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/dotnet/dev-proxy/main/schemas/v0.29.2/rc.schema.json",
"plugins": [
{
"name": "ApiCenterOnboardingPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.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 subscriptionId
, resourceGroupName
, i serviceName
podaj informacje o wystąpieniu Azure API Center.
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ą Dev Proxy.
Dodawanie reportera
Element ApiCenterOnboardingPlugin
tworzy raport interfejsów API używanych przez aplikację. Aby wyświetlić ten raport, dodaj reportera do pliku konfiguracji Dev Proxy. Proxy deweloperski udostępnia kilka raportów. W tym przykładzie użyjesz reportera zwykłego tekstu.
Zaktualizuj swój devproxyrc.json
plik, dodając odniesienie do raportera zwykłego tekstu:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.29.2/rc.schema.json",
"plugins": [
{
"name": "ApiCenterOnboardingPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterOnboardingPlugin"
},
{
"name": "PlainTextReporter",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
],
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
"apiCenterOnboardingPlugin": {
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "demo",
"serviceName": "contoso-api-center",
"workspaceName": "default",
"createApicEntryForNewApis": false
}
}
Sprawdź, czy aplikacja korzysta z ukrytych interfejsów API
Aby sprawdzić, czy aplikacja korzysta z shadow API, połącz się z subskrypcją Azure, uruchom Dev Proxy i pozwól mu przechwycić żądania 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
Proxy deweloperskie wykorzystuje informacje z Azure API Center w celu określenia, czy aplikacja używa ukrytego API. 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 jest zlokalizowany plik devproxyrc.json
, 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żyj swojej aplikacji
Użyj aplikacji, jak zwykle. Proxy Dev przechwytuje żądania 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
Sprawdź ukryte interfejsy API
Zatrzymaj nagrywanie, naciskając s. Dev Proxy łączy się z instancją Centrum API i porównuje informacje o żądaniach z informacjami z Centrum 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 Dev Proxy zakończy analizę, tworzy raport w pliku o nazwie ApiCenterOnboardingPlugin_PlainTextReporter.txt
z następującą 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ć ukryte API, w pliku konfiguracji serwera proxy deweloperów zaktualizuj createApicEntryForNewApis
do true
.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.29.2/rc.schema.json",
"plugins": [
{
"name": "ApiCenterOnboardingPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterOnboardingPlugin"
},
{
"name": "PlainTextReporter",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.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 Proxy deweloperskiego z ustawioną wartością createApicEntryForNewApis
true
, automatycznie tworzone są nowe wpisy interfejsu API w centrum API platformy Azure dla wykrytych przez niego interfejsów API cieni.
Automatyczne dołączanie interfejsów API w tle przy użyciu specyfikacji interfejsu OpenAPI
Jeśli zdecydujesz się automatycznie dołączać nieudokumentowane interfejsy API do Centrum interfejsów API, Dev Proxy może wygenerować specyfikację OpenAPI dla tego interfejsu. Dołączanie interfejsów API przy użyciu specyfikacji OpenAPI przyspiesza włączanie brakujących punktów końcowych i zapewnia niezbędne informacje o API. Gdy ApiCenterOnboardingPlugin
wykryje, że proxy deweloperski utworzył nową specyfikację interfejsu OpenAPI, kojarzy ją z odpowiadającym powiązanym interfejsem API w API Center.
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/dotnet/dev-proxy/main/schemas/v0.29.2/rc.schema.json",
"plugins": [
{
"name": "OpenApiSpecGeneratorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
},
{
"name": "ApiCenterOnboardingPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterOnboardingPlugin"
},
{
"name": "PlainTextReporter",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.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
Proxy deweloperski wykonuje wtyczki w kolejności ich rejestracji w konfiguracji. Musisz najpierw zarejestrować OpenApiSpecGeneratorPlugin
, aby mogło stworzyć specyfikacje OpenAPI (ApiCenterOnboardingPlugin
) zanim nowe interfejsy API zostaną zintegrowane.
Po uruchomieniu Dev Proxy z tą konfiguracją, automatycznie tworzy nowe wpisy API w Centrum API platformy Azure dla ukrytych API, które wykrywa. Dla każdej nowej usługi API, Dev Proxy generuje specyfikację OpenAPI i kojarzy ją z odpowiednim zintegrowanym API w Centrum 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
Za pomocą programu ApiCenterOnboardingPlugin
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 OpenApiSpecGeneratorPlugin
, można automatycznie wygenerować specyfikacje OpenAPI dla nowo dołączonych interfejsów API. Tę kontrolę można uruchomić ręcznie lub zintegrować z potokiem CI/CD, aby upewnić się, że aplikacja korzysta z zarejestrowanego API przed jej wydaniem na produkcję.