Veri Açıklaması Doğrulaması
Modelleri özniteliklerle doğrulayın.
Veri Açıklaması Doğrulaması, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.
Veri Anotasyonu Doğrulaması Nedir?
Veri Anotasyonları, doğrulama kurallarını doğrudan C# sınıflarınızda bildirmek için model özelliklerine yerleştirdiğiniz özniteliklerdir. ASP.NET Core, model bağlama sırasında bu öznitelikleri okur ve gelen istekleri otomatik olarak doğrular.
Bunlar System.ComponentModel.DataAnnotations ad alanında bulunur.
using System.ComponentModel.DataAnnotations;
public class RegisterRequest
{
[Required]
public string Username { get; set; }
}[Required] Özniteliği
[Required], bir özelliğin null olmamasını ve varsayılan olarak boş dize olmamasını sağlar. İstemci alanı göndermezse model doğrulaması, eyleminiz çalışmadan önce başarısız olur.
İletiyi ErrorMessage ile özelleştirebilirsiniz.
public class RegisterRequest
{
[Required(ErrorMessage = "Username is required.")]
public string Username { get; set; }
[Required]
public string Password { get; set; }
}Sayıları [Range] ile Doğrulama
[Range], sayısal bir değeri kapsayıcı bir alt ve üst sınırla kısıtlar. int, double, decimal ve daha birçok türle çalışır.
Bunu yaşlar, miktarlar, puanlar ve sınırlandırılmış tüm sayılar için kullanın.
public class ProductRequest
{
[Range(1, 1000, ErrorMessage = "Quantity must be between 1 and 1000.")]
public int Quantity { get; set; }
[Range(0.01, 9999.99)]
public decimal Price { get; set; }
}E-postayı [EmailAddress] ile Doğrulama
[EmailAddress], bir dizenin geçerli bir e-posta adresine benzeyip benzemediğini denetler. Alanın hem mevcut hem de biçim açısından doğru olması için bunu [Required] ile birleştirin.
public class ContactRequest
{
[Required]
[EmailAddress(ErrorMessage = "Please enter a valid email.")]
public string Email { get; set; }
}Dize Uzunluğu Kısıtlamaları
[StringLength], metin için bir maksimum ve isteğe bağlı bir minimum uzunluk belirler. [MinLength] ve [MaxLength] daha basit seçeneklerdir.
public class RegisterRequest
{
[Required]
[StringLength(20, MinimumLength = 3)]
public string Username { get; set; }
[MaxLength(500)]
public string Bio { get; set; }
}[RegularExpression] ile Örüntü Eşleştirme
[RegularExpression], bir dizeyi düzenli ifade örüntüsüne göre doğrular. Telefon numaraları, posta kodları veya kısa adlar gibi biçimler için idealdir.
public class ProfileRequest
{
[RegularExpression(@"^[a-z0-9-]+$",
ErrorMessage = "Slug may only contain lowercase letters, digits and dashes.")]
public string Slug { get; set; }
}[Compare] ile İki Alanı Karşılaştırma
[Compare], bir özelliğin başka bir özellikle eşleşmesini sağlar. Klasik kullanım alanı parola onayıdır.
public class RegisterRequest
{
[Required]
public string Password { get; set; }
[Compare(nameof(Password), ErrorMessage = "Passwords do not match.")]
public string ConfirmPassword { get; set; }
}ModelState Hataları Nasıl Bildirir?
Doğrulama başarısız olduğunda ASP.NET Core, ModelState nesnesini hatalarla doldurur. [ApiController] ile işaretlenmiş bir API denetleyicisinde geçersiz istekler otomatik olarak 400 yanıtı döndürür; bu nedenle genellikle ModelState nesnesini el ile denetlemeniz gerekmez.
[ApiController]
[Route("api/[controller]")]
public class AccountController : ControllerBase
{
[HttpPost("register")]
public IActionResult Register(RegisterRequest request)
{
// [ApiController] already returned 400 if invalid
return Ok("Registered " + request.Username);
}
}ModelState Denetimlerini El İle Yapma
[ApiController] olmadan, örneğin MVC denetleyicilerinde, ModelState.IsValid değerini kendiniz denetler ve nasıl yanıt vereceğinize karar verirsiniz.
public IActionResult Register(RegisterRequest request)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return Ok();
}Birden Çok Anotasyonu Birleştirme
Anotasyonlar üst üste uygulanır. Tek bir özellik birkaç öznitelik taşıyabilir ve bunların tümünün başarılı olması gerekir. Değerlendirme sırası önemli değildir; ancak öznitelikleri okunabilir tutun.
public class SignupRequest
{
[Required]
[EmailAddress]
[StringLength(254)]
public string Email { get; set; }
[Required]
[Range(18, 120, ErrorMessage = "Must be 18 or older.")]
public int Age { get; set; }
}Veri Anotasyonları Yetersiz Kaldığında
Veri Anotasyonları basit ve bildirimsel kurallar için harikadır. Ancak özellikler arası mantık, veritabanı aramaları veya koşullu kurallar (yalnızca X olduğunda gerekli olma) kısa sürede kullanışsız hâle gelir. İşte bir sonraki derste ele alacağımız FluentValidation bu noktada öne çıkar.
Hızlı Kontrol
Veri anotasyonları konusundaki anlayışınızı sınayın.
Özet
Veri Anotasyonlarının doğrulama kurallarını öznitelikler olarak bildirdiğini öğrendiniz: mevcut olma için [Required], sayısal sınırlar için [Range], e-posta biçimi için [EmailAddress] ve ayrıca [StringLength], [RegularExpression] ile [Compare]. [ApiController] ile hatalar ModelState aracılığıyla otomatik olarak 400 yanıtına dönüştürülür. Karmaşık kurallar için sırada FluentValidation'a başvurun.
Sıkça Sorulan Sorular
“Veri Açıklaması Doğrulaması” dersi ücretsiz mi?
Evet — “Veri Açıklaması Doğrulaması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.
“Veri Açıklaması Doğrulaması” dersinde ne öğreneceğim?
Modelleri özniteliklerle doğrulayın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Veri Açıklaması Doğrulaması” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Veri Açıklaması Doğrulaması
- FluentValidation Kuralları
- Özel ve Koşullu Kurallar
- Doğrulamayı API'lerle Tümleştirme