Uygulamamın üretim düzeyi API'leri kullanıp kullanmadiğini denetleme

Bir bakışta
Hedef: Uygulamanın üretime hazır API'leri kullandığına emin olun
Süre: 20 dakika
Eklentiler:ApiCenterProductionVersionPlugin
Önkoşullar:Geliştirme Proxy'sini ayarlama, Azure API Center

Uygulamanızı oluştururken, hala önizleme aşamasında olan API'leri kullanıyor olabilirsiniz. Uygulamanızla birlikte oluşturulan yeni özelliklerle tümleştirme yaparken genellikle önizleme API'lerini kullanırsınız. Uygulamanızı üretim ortamına sunmadan önce üretim düzeyi API'leri kullandığınızdan emin olmanız gerekir. Hizmet Düzeyi Sözleşmeleri (SLA' lar) tarafından desteklenen ve kapsamına alınan kararlı API'leri kullandığınızda uygulamanız daha sağlamdır.

Uygulamanızın üretim düzeyi API'leri kullanıp kullanmadiğini denetlemek için eklentiyi ApiCenterProductionVersionPlugin kullanabilirsiniz. Bu eklenti, uygulamanızdan gelen API istekleri hakkındaki bilgileri Azure API Center'dan alınan bilgilerle karşılaştırır ve üretim dışı API istekleriyle ilgili raporlar sağlar. Ayrıca, kullandığınız API'lerin üretim sürümünü de önerir.

Kaydedilen API isteklerinin Azure API Center'da kayıtlı üretim sürümü API'leriyle eşleşip eşleşmediğini denetlemeyi gösteren Dev Proxy'yi gösteren konsolun ekran görüntüsü.

Başlamadan önce

Üretim dışı API isteklerini 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.

Azure API Center örneği oluşturma

Başlamadan önce bir Azure API Center örneği oluşturun ve kuruluşunuzda kullandığınız API'leri kaydedin. Her API için kullandığınız sürümleri tanımlayın ve yaşam döngüsü aşamalarını belirtin.

Farklı sürümleri olan bir API'yi gösteren Azure API Center'ın ekran görüntüsü

ApiCenterProductionVersionPlugin, uygulamanızın kullandığı API'lerin üretim veya üretim dışı API'lere ait olup olmadığını denetlemek için bu bilgileri kullanır.

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. Azure API Center örneğinize bağlanabilmesi için ApiCenterProductionVersionPlugin öğesini yapılandırmak amacıyla 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 üretim düzeyi API'leri kullanıp kullanmadiğini denetlemek için Geliştirme Ara Sunucusu yapılandırma dosyasında öğesini etkinleştirmeniz ApiCenterProductionVersionPlugin gerekir. Uygulamanızın kullandığı API'lerin raporunu oluşturmak için bir muhabir ekleyin.

ApiCenterProductionVersionPlugin Etkinleştir

devproxyrc.json dosyasına aşağıdaki yapılandırmayı ekleyin:

Dosya: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterProductionVersionPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.0/apicenterproductionversionplugin.schema.json",
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

subscriptionId, resourceGroupName ve serviceName özelliklerinde Azure API Center örneğinizle 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

, ApiCenterProductionVersionPlugin 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 raporlama araçları sunar. Bu örnekte düz metin muhabirini kullanırsınız.

Dosyanızı devproxyrc.json düz metin raporlayıcısına bir referansla güncelleyin.

Dosya: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterProductionVersionPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.0/apicenterproductionversionplugin.schema.json",
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

Uygulamanızın üretim düzeyi API'leri kullanıp kullanmadiğini denetleyin

Uygulamanızın üretim düzeyi API'leri kullanıp kullanmayacağını denetlemek için Azure aboneliğinize bağlanmanız, Dev Proxy'yi çalıştırmanız ve uygulamanızdan gelen API isteklerini kesmesine izin vermeniz gerekir. Ardından Dev Proxy, API istekleri hakkındaki bilgileri Azure API Center'dan alınan bilgilerle karşılaştırır ve üretim dışı API'ler hakkında raporlar.

Azure aboneliğinize bağlanma

Dev Proxy, uygulamanızın kullandığı API'lerin üretim düzeyinde olup olmadığı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, --config-file seçeneğini kullanarak yapılandırma dosyasının 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 ApiCenterProductionVersionPlugin 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 ApiCenterProductionVersionPlugin 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-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through

API sürümlerini 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 ApiCenterProductionVersionPlugin 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-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through
○ Stopped recording
 info    Checking if recorded API requests use production APIs as defined in API Center...
 info    Loading APIs from API Center...
 info    Analyzing recorded requests...
 warn    Request GET https://jsonplaceholder.typicode.com/users?api-version=beta uses API version beta which is defined as Preview. Upgrade to a production version of the API. Recommended versions: v1.0
 info    DONE

Geliştirme Proxy'si çözümlemesini tamamladığında, adlı ApiCenterProductionVersionPlugin_PlainTextReporter.txt dosyada aşağıdaki içeriklere sahip bir rapor oluşturur:

Non-production APIs:

  GET https://jsonplaceholder.typicode.com/users?api-version=beta
  
Production APIs:

  GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0

Özet

kullanarak uygulamanızın ApiCenterProductionVersionPluginüretim düzeyi API'leri kullanıp kullanmadiğini de kontrol edebilirsiniz. Eklenti, uygulamanızdan gelen API istekleri hakkındaki bilgileri Azure API Center'dan gelen bilgilerle karşılaştırır ve üretim dışı API istekleriyle ilgili raporlar sağlar. Ayrıca, kullandığınız API'lerin üretim sürümünü de önerir. Uygulamanızın hangi API'leri kullandığını doğrulamak, uygulamanızın SLA'lar tarafından desteklenen ve kapsamına alınan kararlı API'leri kullandığından emin olmanıza yardımcı olur ve uygulamanızı daha sağlam hale getirir. Bu denetimi el ile çalıştırabilir veya uygulamanızı üretime yayınlamadan önce üretim düzeyi API'leri kullandığına emin olmak için CI/CD işlem hattınızla tümleştirebilirsiniz.

Daha Fazla Bilgi