Net Core ve Web API: Backend Validation(Fluent Validation)

Merhaba, arkadaşlar!

Bugün sizinle yeni bir konuyu irdeleyeceğiz. O da validasyon işlemleri. Validasyon, ön taraftan sağlanan verilerin arka tarafta işleme alınmasından önce istenilen formatta olup olmadığını denetleme işlemidir. Örnek vermek gerekirse, kullanıcı login işlemlerinde hem kullanıcı adının hem şifresinin düzgün bir şekilde girilip girilmediğini login işlemi arka tarafta uygulanmadan önce denetleme validasyon işlemlerine bir örnektir. Validasyon hem backend hem de frontend(MVC) olarak gerçekleştirilebilir. Frontend validasyon konusunu daha sonra işleyeceğiz. Bugün sizinle fluent validasyon kütüphanesini kullanarak backend validasyon işlemlerini gerçekleştireceğiz.

dotnet add package FluentValidation.AspNetCore

yukarıdaki komut yardımıyla gerekli kütüphaneyi projemize ekliyoruz.

services.AddMvc(setup =>{}).AddFluentValidation();

Kütüphaneyi eklediğimiz projenin Startup sınıfının çinde bulunan ConfigureServices methodu içerisine yukarıda kodu ekliyoruz. Bu sayede FluentValidation kütüphanesi projeye kaydedilmiş oluyor.

Fluent Validation valide edeceği yada etmeyeceği bir nesneye ihtiyaç duyar. Örneğin Kullanıcı kaydı işlemi için FrontEnd’ten BackEnd’e PostUser diye bir nesne yolluyorsak bu nesneyi valide edebilmek için Fluent Validation’a da input olarak vermeliyiz. Valide edeceğimiz örnek nesneyi aşağıdaki gibi oluşturuyoruz.

public class PostUser
{
    public string Username { get; set; }
    public string Password { get; set; }
}

Şimdi de yukarıdaki nesnemizi valide edecek ve kurallarını belirleyeceğimiz sınıfımızı yazalım.

public class PostUserValidation: AbstractValidator<PostUser>
{
    public PostUserValidation()
    {
	RuleFor(x => x.Username).Length(0, 10).NotNull();
	RuleFor(x => x.Password).Length(8, 16).NotNull();
    }
}

Burada hem kullanıcı adı hem şifrenin boş olup olmadığını denetliyoruz ve olması gereken karakter uzunluğunda olup olmadığını test ediyoruz. Şimdi artık test edebilmemiz için her şey hazır aşağıdaki kod ile girdimizin geçerli ve istenilen bir formatta girdi olup olmadığını test edebiliriz.

var user = new PostUser() { Username = "Username", Password = "123" }; // Örnek input
PostUserValidation validator = new PostUserValidation();
var validationResult = validator.Validate(user);
var isValid = validationResult.IsValid;
if(isValid)
{
   // Yapılacaklar
}

Bu şekilde backend validasyon işlemimizi tamamladık. Sonraki dersimizde frontend(MVC) validasyonları irdeleyeceğiz. İyi Kodlamalar!

Leave a Reply

Your email address will not be published. Required fields are marked *