Dev Proxy kullanarak gölge API'leri bulma
Azure API Center kullanarak kuruluşunuzda kullanılan API'leri kataloglarsınız. Bu, hangi API'leri kullandığınızı, API'nin yaşam döngüsünde nerede olduğunu ve sorun olduğunda kiminle iletişim kurabileceğinizi söylemenizi sağlar. Kısacası, güncel bir API kataloğuna sahip olmak idare, uyumluluk ve güvenlik duruşunu geliştirmenize yardımcı olur.
Uygulamanızı oluştururken, özellikle de yeni senaryoları tümleştiriyorsanız, Azure API Center'da kayıtlı olmayan API'leri kullanıyor olabilirsiniz. Bu API'ler gölge API'ler olarak adlandırılır. Gölge API'ler, kuruluşunuzda kayıtlı olmayan API'lerdir. Bunlar henüz kayıtlı olmayan API'ler veya kuruluşunuzda kullanılmaması gereken API'ler olabilir.
Gölge API'leri denetlemenin bir yolu Dev Proxy kullanmaktır. Dev Proxy, uygulamalardan gelen API isteklerini kesen ve analiz eden bir API simülatörüdür. Dev Proxy'nin bir özelliği, kesilen API isteklerinin API Center'da kayıtlı API'lere ait olup olmadığını denetler.
Başlamadan önce
Gölge API'leri algılamak için, kuruluşunuzda kullandığınız API'ler hakkında bilgi içeren bir Azure API Center örneğiniz olmalıdır. Henüz oluşturmadıysanız bkz . Hızlı Başlangıç: API merkezinizi oluşturma. Buna ek olarak, Geliştirme Proxy'si yüklemeniz gerekir.
API Center bilgilerini kopyalama
Azure API Center örneğine Genel Bakış sayfasından API Center örneğinin adını, kaynak grubunun adını ve abonelik kimliğini kopyalayın. Geliştirme Proxy'sini ApiCenterOnboardingPlugin
Azure API Center örneğine bağlanacak şekilde yapılandırmak için bu bilgilere ihtiyacınız vardır.
Geliştirme Ara Sunucusunu Yapılandırma
Uygulamanızın gölge API'leri kullanıp kullanmadiğini denetlemek için Geliştirme Ara Sunucusu yapılandırma dosyasında öğesini etkinleştirmeniz ApiCenterOnboardingPlugin
gerekir. Uygulamanızın kullandığı API'lerin raporunu oluşturmak için bir muhabir ekleyin.
ApiCenterOnboardingPlugin
devproxyrc.json
dosyasına aşağıdaki yapılandırmayı ekleyin:
{
"$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
}
}
, resourceGroupName
ve serviceName
özelliklerinde subscriptionId
Azure API Center örneğinle ilgili bilgileri sağlayın.
özelliğinde urlsToWatch
, uygulamanızın kullandığı URL'leri belirtin.
İpucu
Dev Proxy yapılandırmasını kolayca yönetmek için Dev Proxy Toolkit Visual Studio Code uzantısını kullanın.
Muhabir ekleme
, ApiCenterOnboardingPlugin
uygulamanızın kullandığı API'lerin bir raporunu oluşturur. Bu raporu görüntülemek için Dev Proxy yapılandırma dosyanıza bir muhabir ekleyin. Dev Proxy çeşitli muhabirler sunar. Bu örnekte düz metin muhabirini kullanırsınız.
Dosyanızı devproxyrc.json
düz metin muhabirine bir başvuruyla güncelleştirin:
{
"$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
}
}
Uygulamanızın gölge API'ler kullanıp kullanmadiğini denetleyin
Uygulamanızın gölge API'ler kullanıp kullanmadiğini denetlemek için Azure aboneliğinize bağlanın, Dev Proxy'yi çalıştırın ve uygulamanızdan gelen API isteklerini kesmesine izin verin. Ardından Dev Proxy, API istekleri hakkındaki bilgileri Azure API Center'dan alınan bilgilerle karşılaştırır ve API Center'da kayıtlı olmayan API'lerle ilgili raporlar.
Azure aboneliğinize bağlanma
Dev Proxy, uygulamanızın gölge API'ler kullanıp kullanmadığını belirlemek için Azure API Center'daki bilgileri kullanır. Bu bilgileri almak için Azure aboneliğinize bir bağlantı gerekir. Azure aboneliğinize çeşitli yollarla bağlanabilirsiniz.
Geliştirme Proxy'si çalıştırma
Azure aboneliğinize bağlandıktan sonra Dev Proxy'yi başlatın. Dev Proxy'yi dosyanızın devproxyrc.json
bulunduğu klasörden başlatırsanız, yapılandırma otomatik olarak yüklenir. Aksi takdirde, seçeneğini kullanarak yapılandırma dosyasının --config-file
yolunu belirtin.
Geliştirme Proxy'si başlatıldığında Azure aboneliğinize bağlanıp bağlanamayacağını denetler. Bağlantı başarılı olduğunda şuna benzer bir ileti görürsünüz:
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
Uygulamanızdan API isteklerini kaydetmeye başlamak için r tuşuna basın.
Uygulamanızı kullanma
Uygulamanızı normalde yaptığınız gibi kullanın. Dev Proxy, API isteklerini durdurur ve bunlar hakkındaki bilgileri bellekte depolar. Dev Proxy'nin çalıştığı komut satırında, uygulamanızın yaptığı API istekleri hakkındaki bilgileri görmeniz gerekir.
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
Gölge API'leri denetleme
s tuşuna basarak kaydı durdurun. Geliştirme Proxy'si API Center örneğine bağlanır ve istekler hakkındaki bilgileri API Center'dan alınan bilgilerle karşılaştırır.
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...
Geliştirme Proxy'si çözümlemesini tamamladığında, adlı ApiCenterOnboardingPlugin_PlainTextReporter.txt
dosyada aşağıdaki içeriklere sahip bir rapor oluşturur:
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
Gölge API'leri otomatik olarak ekleme
yalnızca ApiCenterOnboardingPlugin
gölge API'leri algılamaz, aynı zamanda bunları API Center'a otomatik olarak ekler. Gölge API'leri otomatik olarak eklemek için, Geliştirme Ara Sunucusu yapılandırma dosyasında öğesini olarak true
güncelleştirincreateApicEntryForNewApis
.
{
"$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
}
}
Ile Dev Proxy'yi createApicEntryForNewApis
olarak true
çalıştırdığınızda, algılandığı gölge API'ler için Azure API Center'da otomatik olarak yeni API girişleri oluşturur.
OpenAPI belirtimi ile gölge API'leri otomatik olarak ekleme
API Center'a otomatik olarak gölge API'ler eklemeyi seçtiğinizde, Dev Proxy'nin API için OpenAPI belirtimini oluşturmasını sağlayabilirsiniz. OpenAPI özelliklerine sahip API'leri ekleme, eksik uç noktaların eklenmesine hız verir ve API hakkında gerekli bilgileri sağlar. ApiCenterOnboardingPlugin
Algıladığında, Dev Proxy'nin yeni bir OpenAPI belirtimi oluşturduğunu algıladığında, bunu API Center'daki ilgili eklenen API ile ilişkilendirir.
Eklenen API'ler için OpenAPI belirtimlerini otomatik olarak oluşturmak için Dev Proxy yapılandırmasını öğesini içerecek şekilde güncelleştirin 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
}
}
Önemli
Dev Proxy, eklentileri yapılandırmada kayıtlı oldukları sırayla yürütür. Yeni API'leri eklemeden önce OpenAPI belirtimleri oluşturabilmesi için ilkini ApiCenterOnboardingPlugin
kaydetmeniz OpenApiSpecGeneratorPlugin
gerekir.
Dev Proxy'yi bu yapılandırmayla çalıştırdığınızda, algıladığında gölge API'ler için Azure API Center'da otomatik olarak yeni API girişleri oluşturur. Dev Proxy, her yeni API için bir OpenAPI belirtimi oluşturur ve bunu API Center'daki ilgili eklenen API ile ilişkilendirir.
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
Özet
Geliştirme Proxy'sini ve proxy'sini ApiCenterOnboardingPlugin
kullanarak uygulamanızın gölge API'leri kullanıp kullanmadiğini de kontrol edebilirsiniz. Eklenti, uygulamanızdan gelen API isteklerini analiz eder ve Azure API Center'da kayıtlı olmayan API isteklerini raporlar. Eklenti, eksik API'leri API Center'a kolayca eklemenizi sağlar. eklentisini ApiCenterOnboardingPlugin
ile OpenApiSpecGeneratorPlugin
birleştirerek, yeni eklenen API'ler için otomatik olarak OpenAPI belirtimleri oluşturabilirsiniz. Bu denetimi el ile çalıştırabilir veya uygulamanızın üretime yayınlamadan önce kayıtlı API'leri kullandığına emin olmak için CI/CD işlem hattınızla tümleştirebilirsiniz.