Aracılığıyla paylaş


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.

Kaydedilen API isteklerinin Azure API Center'a kaydedilip kaydedilmediğini denetleen Dev Proxy'yi gösteren komut isteminin ekran görüntüsü.

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.

Birkaç özelliğin vurgulandığı Azure API Center genel bakış sayfasının ekran görüntüsü.

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
  }
}

, resourceGroupNameve serviceName özelliklerinde subscriptionIdAzure 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 truegü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.

Yeni eklenen API'nin gösterildiği API Center'ın ekran görüntüsü.

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

OpenAPI belirtimiyle yeni eklenen API'yi gösteren Azure API Center'ın ekran görüntüsü.

Özet

Geliştirme Proxy'sini ve proxy'sini ApiCenterOnboardingPluginkullanarak 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 OpenApiSpecGeneratorPluginbirleş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.

Daha Fazla Bilgi