IRONSOFTWAREHOME

Sağlık Kontrolleri Ekleme - C# Kursunda Örnek Bir API Oluşturma

Sağlık Kontrolleri Ekleme - C# Kursu İçinde Örnek Bir API Oluşturma

Tim Corey

23m 30s

ASP.NET Core kullanarak C#'ta RESTful API'leri geliştirmek ve test etmek, modern bir arka uç geliştiricisi için pratik bir yetenektir. Tim Corey, "Sağlık Kontrolleri Ekleme - C# Kursu İçinde Örnek Bir API Oluşturma" başlıklı öğretici videosunda, sağlık kontrolleri entegre edilmiş örnek bir API oluşturma sürecini anlatıyor. Bu makale, tamamen Tim'in transkriptine dayanarak, public async Task, int id, var app ve diğer HTTP istek yöntemleri gibi önemli noktaları kapsayan adım adım süreci açıklıyor.

Visual Studio Code kullanarak, Tim Corey'nin bir C# API projesinde sağlık kontrollerini nasıl ayarladığını daha derinlemesine inceleyelim.

Örnek API ve Sağlık Kontrollerine Giriş

Tim, bir örnek API'nin web geliştirmeyi öğrenirken güçlü bir araç olduğunu açıklar. Geliştiricilerin GET, POST, PUT ve DELETE yöntemlerini kullanarak API çağrılarını simüle etmelerine olanak tanır, uygun istek verileri ve durum kodları ile. Tim'in inşa ettiği API destekler:

  • Veri modeli ile örnek veriler

  • API istekleri için RESTful davranışlar

  • JSON formatında yanıtlar

  • Sağlık kontrolleri

  • Docker kapları ve web uygulamaları olarak dağıtım

Sağlık Kontrolleri Paketi Yükleme

Tim, projeyi Visual Studio Code'da açar ve Bağımlılıklar üzerinde sağ tıklayarak NuGet paketlerini yönetir. AspNetCore.HealthChecks.UI.Client paketini arar ve yükler. Bu, uygulamanın iki tür sağlık kontrolünü desteklemesini sağlar.

Sağlık Kontrol Sınıfları Oluşturma

Tim, API proje klasörü içinde Sağlık Kontrolleri adlı yeni bir klasör ekler. Burada IHealthCheck arayüzünü (interface) implement eden, her biri farklı bir durumu temsil eden çeşitli sınıflar oluşturur: sağlıklı, bozulmuş, sağlıksız ve rastgele.

HealthyHealthCheck.cs

Bu sınıf bir public async Task<HealthCheckResult> implementasyonu kullanarak bir HealthCheckResult.Healthy döndürür:

return Task.FromResult(HealthCheckResult.Healthy("This is a test healthy service."));

Bu, kararlı bir hizmeti nasıl ele alacağını test etmek için yararlı olan sağlıklı bir durumu simüle eder.

DegradedHealthCheck.cs

return Task.FromResult(HealthCheckResult.Degraded("This is a test degraded service."));

Bu kontrol, bozulmuş hizmet yanıtı döndürür. Kısmi başarısızlığı veya performans sorunlarını simüle etmenin basit bir yoludur.

UnhealthyHealthCheck.cs

return Task.FromResult(HealthCheckResult.Unhealthy("This is a test unhealthy service."));

Bu, başarısız bir hizmeti taklit eder, 500 HTTP durum kodu bekleyeceğiniz veya NotFound() döndüreceğiniz durumları simüle eder.

RandomHealthCheck.cs

Bu sağlık kontrolü, rastgele bir tam sayı kullanarak üç durumdan birini simüle eder

int randomResult = Random.Shared.Next(1, 4);
return randomResult switch
{
    1 => Task.FromResult(HealthCheckResult.Healthy("This is a test random service.")),
    2 => Task.FromResult(HealthCheckResult.Degraded("This is a test random service.")),
    3 => Task.FromResult(HealthCheckResult.Unhealthy("This is a test random service.")),
    _ => Task.FromResult(HealthCheckResult.Healthy("This is a test random service."))
};

Tim, değişken koşullar altında nasıl davranış testi yapıldığını vurgular.

StartUp Yapılandırmasına Sağlık Kontrollerini Kaydetme

Tim, Startup veya yapılandırma klasöründe yeni bir statik sınıf HealthChecksConfig.cs ekler. Bu klas iç합니다:

AddAllHealthChecks()

services.AddHealthChecks()
    .AddCheck<RandomHealthCheck>("random", tags: new[] { "random" })
    .AddCheck<HealthyHealthCheck>("healthy", tags: new[] { "healthy" })
    .AddCheck<DegradedHealthCheck>("degraded", tags: new[] { "degraded" })
    .AddCheck<UnhealthyHealthCheck>("unhealthy", tags: new[] { "unhealthy" });

Bu, ASP.NET Core hizmetler kabında dependency injection için tüm sağlık kontrollerini kaydeder.

MapAllHealthChecks()

app.MapHealthChecks("/health");

Bu, tüm hizmetleri bir arada değerlendiren tek bir /health uç noktası oluşturur. Eğer herhangi biri sağlıksızsa, tüm kontrol sağlıksız olarak döner.

Özel Sağlık Uç Noktaları Oluşturma

Bireysel bileşenleri test etmek için Tim her sağlık kontrolünü etiketle haritalar:

app.MapHealthChecks("/health/healthy", new HealthCheckOptions {
    Predicate = x => x.Tags.Contains("healthy")
});

/health/degraded, /health/unhealthy ve /health/random için de aynı işlemi tekrarlar. Her biri, geliştiricilerin belirli davranışları ve ön uçların onlara nasıl tepki verdiğini test etmelerine olanak tanır.

/health/random adresini ziyaret ederken, çıktı rastgele sonuca göre "sağlıklı", "azalmış" ve "sağlıksız" arasında değişir.

Sağlık Kontrolleri için UI Desteği Ekleme

Tim, her sağlık kontrol rotası için bir UI yanıtı sağlayarak uç noktaları geliştirir. Bu, bir JSON çıktısı sağlar:

app.MapHealthChecks("/healthui", new HealthCheckOptions
{
    ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});

Bu, süre, etiketler ve durum gibi verilerle her sağlık kontrolünü incelemeye olanak tanır. Tim daha sonra her sağlık uç noktası için UI sürümleri oluşturur:

  • /healthui/healthy

  • /healthui/degraded

  • /healthui/unhealthy

  • /healthui/random

Her biri, özellikle RESTful API'ler ve mobil cihazlardan veya web sayfalarından test etmek için ideal olan ayrıntılı bir JSON formatıyla yanıt verir.

API Projesini Tamamlama

Tim, bu özelliklere rağmen Program.cs'nin yalnızca 21 satır olduğunu vurgular. Bunu şunlara bağlar:

  • İyi proje klasör yapısı

  • Modelleri Modeller klasöründe tutma

  • Uç noktaları ve denetleyicileri kendi klasörlerinde yerleştirme

  • Her sağlık kontrolü sınıfı için async Task yöntemlerini kullanma

Ayrıca, bu örnek API'nin gecikme süresi veya hataları, dağıtımdan önce simüle etmek için, üretim ortamlarında ne kadar yararlı olduğunu vurgular.

"Bu API ile daha fazla test yapabiliriz, sadece GET çağrıları yapmakla kalmaz," diyor Tim.

Sonraki Adımlar

Tim, bir sonraki derste, API davranışını daha da test etmek için yavaşlamalar (örneğin, 5 saniyelik gecikmeler) ve NotFound() ya da BadRequest() döndüren hatalar ekleyeceğini söyler.

Sonuç

Bu videoda, Tim Corey, ASP.NET Core kullanarak entegre sağlık kontrolleri olan minimal bir API oluşturma sürecini metodik olarak yürütür. Ana bileşenler şunlardır:

  • Sağlık kontrol sınıfları (Healthy, Degraded, Unhealthy, Random)

  • AddHealthChecks() aracılığıyla bağımlılık enjeksiyonu

  • MapHealthChecks() kullanarak uç noktaları haritalama

  • Yapılandırılmış JSON yanıtlarını destekleme

Bu yaklaşım, REST API'lerini doğrulamayı, hataları simüle etmeyi ve hem geliştirme hem de üretim ortamları için web uygulamalarını güçlendirmeyi kolaylaştırır.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez