Altbilgi içeriğine atla
Iron Academy Logo
C# Uygulaması
C# Uygulaması

Diğer Kategoriler

Örnek Veriler ve Filtreleme - C# Kursunda Örnek API Oluşturma

Tim Corey
42m 43s

Günümüzde web geliştirmesi ile çalışırken önemli bir araç, örnek bir Web API'sidir — ön uç web uygulamalarını, mobil cihazları veya hatta yazılım uygulamalarını test etmek için kullanabileceğiniz bir şey. Örnek Veri ve Filtreleme - C#'da Örnek Bir API Oluşturma adlı detaylı videosunda Tim Corey, bizi bir JSON dosyasından örnek veri yükleyen, filtreleme kuran ve Docker konteyneri veya geleneksel bir web uygulaması olarak dağıtıma hazırlanan bir C# Web API'si oluşturmaya götürüyor.

Bu makalede, Tim'in yaklaşımını adım adım inceleyeceğiz ve ASP.NET Core Web API, Minimal API'ler ve HTTP servislerinden temel kavramları açıklayacağız.

Örnek Web API'ye Giriş

Tim, yeni bir Web API projesi oluşturmanın geliştiriciler için neden bu kadar önemli olduğunu açıklayarak başlıyor. İster mobil cihazlar için, ister bir web uygulaması veya diğer yazılım uygulamaları için geliştirme yapıyor olun, hafif bir örnek API'ye sahip olmak testleri daha hızlı ve sorunsuz hale getirir.

Tim, projenin sonunda elimizde şunların olacağını belirtiyor:

  • ASP.NET Core ve .NET Core kullanılarak oluşturulmuş bir minimal API,

  • OpenAPI (Swagger UI) desteği ile belgelenmiş bir API,

  • Sağlık kontrolleri,

  • Simüle edilmiş hatalar ve yavaşlamalar,

  • Docker konteynerinde ve bir VPS sunucusuna dağıtım.

Bu küçük proje, geliştiricilerin GET, PUT, POST ve DELETE gibi HTTP yöntemleri aracılığıyla HTTP hizmetleriyle kolayca etkileşimde bulunmalarını sağlayacaktır.

Proje ve Örnek Verilerin Kurulması

Tim, Microsoft'un popüler entegre geliştirme ortamı olan Visual Studio içinde Web API projesinin yapısını kurarak başlıyor.

1:07'de Tim, yeni bir Veri klasörü oluşturuyor ve courseData.json dosyasını ekliyor. Canlı sitesi timcorey.com'un da perde arkasında web servisi olarak çalışan benzer bir sistem kullandığını belirtiyor — sadece büyük bir JSON dosyası.

Tim'in kurulumundan önemli noktalar:

  • Bir veritabanı veya Entity Framework gerektirmemek için örnek veriler için JSON dosyaları kullanın.

  • SQL sunucuları gibi ek hizmetlerden kaçınarak konteynerları küçük tutun.

  • Veri değiştirilemez — değişiklikleri depolamaya gerek yok; sadece ihtiyaç duyulduğunda verileri sıfırlayın.

Bu seçim, mevcut kaynaklarla çalışma prensiplerinden oluşan REST (Temsili Durum Transferi) prensiplerini yansıtır.

Kurs Veri Yapısını Anlamak

Tim, örnek JSON dosyasının yapısını dikkatlice anlatıyor:

  • ID (tam sayı),

  • PreOrder (boolean),

  • Kurs URL'si (dize),

  • Kurs Türü (dize),

  • İsim, Ders Sayısı, Saat Cinsinden Kurs Uzunluğu (sayılar),

  • Açıklama, Resim URL'si,

  • USD cinsinden Fiyat,

  • Önizleme Bağlantısı.

Tim, 3:29'da fiyatlandırmanın tamamının ABD doları bazlı olduğunu açıklar; bununla birlikte, yerel vergiler (KDV) nihai fiyatı değiştirebilir.

Bu alanlardan her biri daha sonra C#'ta bir model sınıfına eşlenir — ASP.NET Web API'leri oluşturmada temel bir unsur.

Kurs Model Sınıfını Oluşturmak

Tim, .NET Core kodlamasına geçerek yeni bir Models klasörü içinde CourseModel.cs dosyası oluşturur.

4:47'de, JSON yapısına dayalı olarak anında bir sınıf oluşturmak için Visual Studio'nun "Özel Yapıştır > JSON'u Sınıf Olarak Yapıştır" özelliğini kullanıyor. Tim şu noktalara dikkat çekiyor:

  • Uygun PascalCase adlandırma (C# web API'leri için önemli),

  • Zorunlu ve boş bırakılabilir dizeler (6:02),

  • Boş bir dize yeterli olduğunda null değerini depolamaktan kaçın.

Güçlü bir model sınıfı oluşturmak, istemciler ve sunucu arasında veri iletişimini sağlamak için çok önemlidir.

Verileri Belleğe Yükleme

Tim, kurs listesinin belleğe yüklenmesini yönetmek için CourseData.cs sınıfını oluşturmaya devam ediyor.

Ana adımlar:

  • Serileştirme için System.Text.Json kullanın,

  • ÖzellikAdıBüyük/KüçükHarfDuyarlılık = true ayarlayın (8:04), camelCase JSON'u PascalCase C# alanlarına eşleştirmek için,

  • Path.Combine (9:04) kullanarak platformlar arası dosya erişimini sağlayın,

  • Linux sunucuları (9:59) ile çalışırken harf duyarlılığına dikkat edin.

Kurslar, hızlı bir erişim sağlayarak bir veritabanına tekrar tekrar erişmeden, herkesin üzerinde çalışabileceği her yerde ve her zaman kullanılabilir bir şekilde, public Listözelliğine yüklenir.

Tim, 11:04'te, serileştirme başarısız olursa, null referans hatalarından kaçınmak için yeni boş bir liste oluşturulacağını vurgular — sağlam API'ler geliştirirken iyi bir uygulama.

Bağımlılık Eklemeye Kurs Verilerini Kaydetme

Ardından, Tim CourseData sınıfını AddTransient kullanarak hizmet konteynerine nasıl kaydedeceğini gösterir.

Verinin salt okuma olmasına rağmen, geçici bir hizmet kullanmanın istenmeyen değişiklik sorunlarından kaçınacağını açıklar. Bu yaklaşım, modern ASP.NET Core Web API geliştirme standartları ile uyumludur.

Kurs Sonlanma Noktaları Oluşturma

14:03'te Tim, örnek API için son noktalar oluşturmaya başlar:

  • Tüm kursları almak için /courses altında bir GET yöntemi,

  • Kodu daha temiz hale getirmek için AddCourseEndpoints uzatma yöntemi.

Bu modüler yaklaşım, büyük HTTP hizmetlerini veya birden çok son noktayı yönetirken web API projesini ölçeklendirmeyi basitleştirir — temel bir tekniktir.

Building A Sample Api In Csharp 1 related to Kurs Sonlanma Noktaları Oluşturma

Tim, testleri kolaylaştırmak için başlatma URL'sini Swagger UI'ye ayarlamıştır.

Hata Ayıklama: Veri Tipi Uyumsuzlukları

Yeni son noktayı test ederken, Tim CourseLengthInHours alanıyla ilgili bir durum kodu hatasıyla karşılaşır. Bazı kursların (2.5 gibi) kesirli saatlere sahip olduğunu fark eder; bu da bir double yerine int gerektirir.

Tim, CourseModel'i düzelterek dış web kaynaklarını tüketirken veri türlerine dikkat etmenin ve kapsamlı hata denetiminin önemini gösterir.

ID Araması ile API'yi Geliştirme

Tim fonksiyonelliği şu şekilde genişletir:

  • Tüm kursları almak için LoadAllCourses,

  • ID'ye göre bir kurs bulmak için LoadCourseById.

Bir kursun mevcut olup olmadığını kontrol ederek hata yönetimini geliştirir. Eğer yoksa, Tim return NotFound() kullanır — istemciye uygun bir HTTP durum kodu döner.

Bu, her HTTP yönteminin işlem sonucunu açıkça ilettiği RESTful mimari stil uygulamalarına uygunluk gösterir.

Kurs Türüne ve Aramaya Göre Filtreleme Ekleme

Basit bir GET yöntemi yeterli değil — gerçek web hizmetlerinin filtreleme yeteneklerine ihtiyacı vardır.

Tim, LoadAllCourses'i sorgu parametrelerini kabul etmeye geliştirmiştir:

  • courseType (dize),

  • arama (dize).

Opsiyonel parametreleri güvenli bir şekilde kullanma konusunu String.IsNullOrWhiteSpace kullanarak açıklar.

courseType ile filtreleme, büyük harf/küçük harf farkını dikkate almayan String.Compare ile RemoveAll kullanılarak yapılır. Kurs adını ve kısa açıklamayı arama, büyük/küçük harfe duyarsız bir karşılaştırma ile .Contains kullanılarak yapılır.

Tim şu gibi senaryoları test eder:

  • "Master Kurs" için filtreleme

  • "web" veya "SQL" için arama

  • Daha rafine sonuçlar için arama ve kurs türünü birleştirme

Bu, web uygulamaları, mobil uygulamalar veya HTTP üzerinden iletişim kuran istemciler arasında kullanıcılar için tamamen etkileşimli bir deneyim sunar. Daha ayrıntılı bilgi için tam videonuza bakınız.

Son Düşünceler ve Bir Sonraki Adımlar

Dersin sonunda, Tim şunları oluşturmuştur:

  • Çalışır durumda bir ASP.NET Core Web API,

  • Filtreleme ve arama yetenekleri,

  • Uygun hata yönetimi (NotFound, Ok, vb.),

  • Swagger UI ve OpenAPI belgelerine destek.

Tim, bir sonraki adımda Ağlar Arası Kaynak Paylaşımını (CORS) ele alacağını belirtiyor — internet istemcilerinin ve farklı alanların API'ye serbestçe erişimini sağlaması önemli olan.

Tim, teşvik edici bir notla kapanır: programlama bazen engeller içerir, ancak ödüllendiricidir.

Sonuç

Tim Corey'nin videosunu izleyerek, Visual Studio'da yeni bir Web API projesi oluşturabilir, örnek verileri yükleyebilir, son noktalar oluşturabilir ve güçlü filtreleme uygularsınız — tümü RESTful prensipler ve ASP.NET Core standartlarına dayanmaktadır.

İster web sayfalarını test ediyor olun, ister mobil cihazlar için API'ler oluşturuyor olun, ister mevcut kaynaklarla çalışıyor olun, bu yapılandırma HTTP yöntemleri aracılığıyla verilere hızlı, güvenilir erişim sağlar.

.NET Core'daki bu kalıpları uygulamaya devam edin ve yakında istemciler, sunucular ve internet arasında sorunsuz iletişim kuran sağlam web hizmetleri yaratıyor olacaksınız!

Hero Worlddot related to Örnek Veriler ve Filtreleme - C# Kursunda Örnek API Oluşturma
Hero Affiliate related to Örnek Veriler ve Filtreleme - C# Kursunda Örnek API Oluşturma

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js üzerinde çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara