Menemukan API bayangan menggunakan Dev Proxy
Menggunakan Azure API Center, Anda membuat katalog API yang digunakan di organisasi Anda. Ini memungkinkan Anda untuk memberi tahu API mana yang Anda gunakan, di mana API berada dalam siklus hidupnya, dan siapa yang harus dihubungi jika ada masalah. Singkatnya, memiliki katalog API terbaru membantu Anda meningkatkan postur tata kelola, kepatuhan, dan keamanan.
Saat membuat aplikasi, terutama jika Mengintegrasikan skenario baru, Anda mungkin menggunakan API yang tidak terdaftar di Azure API Center. API ini disebut API bayangan. SHADOW API adalah API yang tidak terdaftar di organisasi Anda. Api mungkin belum terdaftar, atau mungkin API yang tidak dimaksudkan untuk digunakan di organisasi Anda.
Salah satu cara untuk memeriksa API bayangan adalah dengan menggunakan Dev Proxy. Dev Proxy adalah simulator API yang mencegat dan menganalisis permintaan API dari aplikasi. Salah satu fitur Dev Proxy adalah memeriksa apakah permintaan API yang dicegat milik API yang terdaftar di API Center.
Sebelum memulai
Untuk mendeteksi API bayangan, Anda harus memiliki instans Azure API Center dengan informasi tentang API yang Anda gunakan di organisasi Anda. Jika Anda belum membuatnya, lihat Mulai Cepat: Membuat pusat API Anda. Selain itu, Anda perlu menginstal Dev Proxy.
Salin informasi API Center
Dari halaman Gambaran Umum instans Azure API Center, salin nama instans API Center, nama grup sumber daya, dan ID langganan. Anda memerlukan informasi ini untuk mengonfigurasi Dev Proxy ApiCenterOnboardingPlugin
sehingga dapat terhubung ke instans Azure API Center Anda.
Mengonfigurasi Proksi Dev
Untuk memeriksa apakah aplikasi Anda menggunakan API bayangan, Anda perlu mengaktifkannya ApiCenterOnboardingPlugin
di file konfigurasi Proksi Dev. Untuk membuat laporan API yang digunakan aplikasi Anda, tambahkan reporter.
Aktifkan ApiCenterOnboardingPlugin
devproxyrc.json
Dalam file, tambahkan konfigurasi berikut:
{
"$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
}
}
subscriptionId
Di properti , resourceGroupName
, dan serviceName
, berikan informasi tentang instans Azure API Center Anda.
urlsToWatch
Di properti , tentukan URL yang digunakan aplikasi Anda.
Tip
Gunakan ekstensi Dev Proxy Toolkit Visual Studio Code untuk mengelola konfigurasi Dev Proxy dengan mudah.
Menambahkan wartawan
menghasilkan ApiCenterOnboardingPlugin
laporan API yang digunakan aplikasi Anda. Untuk melihat laporan ini, tambahkan reporter ke file konfigurasi Dev Proxy Anda. Dev Proxy menawarkan beberapa wartawan. Dalam contoh ini, Anda menggunakan reporter teks biasa.
Perbarui file Anda devproxyrc.json
dengan referensi ke reporter teks biasa:
{
"$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
}
}
Periksa apakah aplikasi Anda menggunakan API bayangan
Untuk memeriksa apakah aplikasi Anda menggunakan API bayangan, sambungkan ke langganan Azure Anda, jalankan Dev Proxy, dan biarkan aplikasi mencegat permintaan API dari aplikasi Anda. Dev Proxy kemudian membandingkan informasi tentang permintaan API dengan informasi dari Azure API Center dan laporan tentang API apa pun yang tidak terdaftar di API Center.
Menyambungkan ke langganan Azure Anda
Dev Proxy menggunakan informasi dari Azure API Center untuk menentukan apakah aplikasi Anda menggunakan API bayangan. Untuk mendapatkan informasi ini, diperlukan koneksi ke langganan Azure Anda. Anda dapat menyambungkan ke langganan Azure Anda dengan beberapa cara.
Jalankan Proksi Dev
Setelah menyambungkan ke langganan Azure Anda, mulai Dev Proxy. Jika Anda memulai Proksi Dev dari folder yang sama tempat file Anda devproxyrc.json
berada, file tersebut secara otomatis memuat konfigurasi. Jika tidak, tentukan jalur ke file konfigurasi menggunakan --config-file
opsi .
Saat Dev Proxy dimulai, Dev Proxy memeriksa apakah proksi tersebut dapat tersambung ke langganan Azure Anda. Saat koneksi berhasil, Anda akan melihat pesan yang mirip dengan:
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
Tekan r untuk mulai merekam permintaan API dari aplikasi Anda.
Menggunakan aplikasi Anda
Gunakan aplikasi seperti yang biasa Anda lakukan. Dev Proxy mencegat permintaan API dan menyimpan informasi tentang mereka dalam memori. Di baris perintah tempat Proksi Dev berjalan, Anda akan melihat informasi tentang permintaan API yang dilakukan aplikasi Anda.
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
Periksa API bayangan
Hentikan perekaman dengan menekan s. Dev Proxy terhubung ke instans API Center dan membandingkan informasi tentang permintaan dengan informasi dari API Center.
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...
Saat Dev Proxy menyelesaikan analisisnya, Dev Proxy membuat laporan dalam file bernama ApiCenterOnboardingPlugin_PlainTextReporter.txt
dengan konten berikut:
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
Api bayangan onboarding secara otomatis
Tidak ApiCenterOnboardingPlugin
hanya dapat mendeteksi API bayangan, tetapi juga secara otomatis melakukan onboarding ke API Center. Untuk melakukan onboarding API bayangan secara otomatis, dalam file konfigurasi Proksi Dev, perbarui createApicEntryForNewApis
ke 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
}
}
Saat Anda menjalankan Dev Proxy dengan createApicEntryForNewApis
diatur ke true
, ia secara otomatis membuat entri API baru di Azure API Center untuk API bayangan yang dideteksinya.
Api bayangan onboarding secara otomatis dengan spesifikasi OpenAPI
Saat Anda memilih untuk melakukan onboarding secara otomatis, SHADOW API ke API Center, Anda dapat meminta Dev Proxy menghasilkan spesifikasi OpenAPI untuk API. API onboarding dengan spesifikasi OpenAPI mempercepat orientasi titik akhir yang hilang dan memberi Anda informasi yang diperlukan tentang API. ApiCenterOnboardingPlugin
Ketika mendeteksi, Bahwa Dev Proxy membuat spesifikasi OpenAPI baru, ia mengaitkannya dengan API onboarding yang sesuai di API Center.
Untuk menghasilkan spesifikasi OpenAPI secara otomatis untuk API onboarding, perbarui konfigurasi Dev Proxy untuk menyertakan 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
}
}
Penting
Dev Proxy menjalankan plugin dalam urutan terdaftar dalam konfigurasi. Anda perlu mendaftarkan yang OpenApiSpecGeneratorPlugin
pertama sehingga dapat membuat spesifikasi OpenAPI sebelum ApiCenterOnboardingPlugin
API baru onboard.
Saat Anda menjalankan Dev Proxy dengan konfigurasi ini, ia secara otomatis membuat entri API baru di Azure API Center untuk API bayangan yang dideteksinya. Untuk setiap API baru, Dev Proxy menghasilkan spesifikasi OpenAPI dan mengaitkannya dengan API onboarding yang sesuai di API Center.
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
Ringkasan
Menggunakan Dev Proxy dan ApiCenterOnboardingPlugin
, Anda dapat memeriksa apakah aplikasi Anda menggunakan API bayangan. Plugin menganalisis permintaan API dari aplikasi Anda dan melaporkan permintaan API apa pun yang tidak terdaftar di Azure API Center. Plugin ini memungkinkan Anda untuk dengan mudah melakukan onboardING API yang hilang ke API Center. Dengan menggabungkan ApiCenterOnboardingPlugin
plugin dengan OpenApiSpecGeneratorPlugin
, Anda dapat secara otomatis menghasilkan spesifikasi OpenAPI untuk API yang baru di-onboarding. Anda dapat menjalankan pemeriksaan ini secara manual atau berintegrasi dengan alur CI/CD Anda untuk memastikan bahwa aplikasi Anda menggunakan API terdaftar sebelum merilisnya ke produksi.