Buradasın
Spring Boot'ta Java Bean Validation ve Hata Yönetimi Eğitimi
youtube.com/watch?v=AVUGHioyPhQYapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Burak Kutbay tarafından sunulan bir eğitim içeriğidir. Eğitmen, Spring Boot uygulamalarında Java Bean Validation kütüphanesini kullanarak validation yapma ve hata yönetimi konularını adım adım göstermektedir.
- Video, Java Bean Validation'ın ne olduğunu açıklayarak başlıyor ve ardından bir Spring Boot projesi oluşturma sürecini gösteriyor. İlk olarak validasyonsuz bir yapı oluşturuluyor, ardından Postman üzerinden kayıt isteği gönderilerek hata mesajı alınıyor. Daha sonra Student sınıfındaki alanlara validasyon kuralları ekleniyor ve controller advice anatasyonu kullanarak hata yönetimi için bir class oluşturuluyor.
- Eğitimde özellikle validation handler sınıfı oluşturarak hatalı alanların nasıl listeleneceği ve kullanıcıya anlamlı mesajlar nasıl gösterileceği detaylı olarak açıklanmaktadır. Validation kuralları arasında must not be null, must not be empty, email format, yaş kısıtlaması ve telefon numarası pattern gibi kurallar bulunmaktadır.
- 00:08Java Bean Validation Tanıtımı
- Java Bean Validation, uygulamalarımızdaki alanları doğrulamak için kullanılan bir yardımcı kütüphanedir.
- Bu paket 2009 yılından beri geliştirilmekte olup, alanlarımızı hızlı bir şekilde doğrulamamızı sağlar.
- Konuşmacı, blogunda (blog.burakboy.com) öğrendiği her şeyi not ettiğini ve izleyicilerin yorumlarını bırakabileceğini belirtiyor.
- 01:13Spring Boot Projesi Oluşturma
- Java Bean Validation kullanarak Spring Boot projesi oluşturuluyor.
- Proje için "kutbay" grubu ve "validation" starter paketi seçiliyor.
- Veritabanı için H2 ve Lombomakut kullanılıyor, ayrıca Spring Web paketi de ekleniyor.
- 02:51Student Class Oluşturma
- Proje için "Student" class'ı oluşturuluyor ve model paketinin altında yer alıyor.
- Entity için "spring.boot.starter.data" dependency ekleniyor.
- Student class'ında id, name, school, email, phone ve age alanları oluşturuluyor.
- 06:26Repository ve Servis Oluşturma
- StudentRepository interface'i oluşturuluyor ve veritabanıyla iletişime geçecek.
- StudentService servisi oluşturuluyor ve StudentRepository interface'i türetiliyor.
- Serviste kaydetme metodu ekleniyor ve öğrenci nesnesi alınıyor.
- 09:47Controller Oluşturma
- StudentController REST controller olarak oluşturuluyor.
- Controller'da addStudent metodu ekleniyor ve request body'sine student nesnesi gelecek.
- Metotta StudentService'e save metodu çağrılıyor ve response entity döndürülüyor.
- 11:33Projenin Çalıştırılması
- Proje çalıştırılıyor ve Postman üzerinden istek gönderiliyor.
- İlk istekte alanlar boş bırakıldığında 404 hatası alınıyor.
- URL adresi belirtilerek tekrar çalıştırıldığında, boş alanlar ve geçersiz formatlar için hata mesajı alınıyor.
- 14:46Validation Kuralları Ekleme
- Modeldeki alanlara validation kuralları ekleniyor.
- Name ve surname alanlarına null olamaz, en az 2 karakterli olmalı gibi kurallar ekleniyor.
- Email formatı, yaş sınırı ve phone için regex pattern gibi kurallar ekleniyor.
- 19:25Validation Kontrolü ve Hata Yönetimi
- Konsolda telefon, email, age ve name surname alanlarının eşleşmeli, valid ve boyut olarak kontrol edildiği görülmektedir.
- API'yi kullanan kişiye farklı mesajlar gönderilerek 500 cevabı verilmekte, ancak bu cevap aslında controller içerisinde serviste kaydedilirken oluşmaktadır.
- Validation kontrolü için controller içerisinde request body'ye gelen değeri kontrol etmek için Validantasyon eklenmesi gerekmektedir.
- 21:19Hata Yönetimi ve Validation Handler
- Postman'da yapılan testte önceki hata 500 cevabı verirken, bu sefer 400 cevabı vermektedir.
- Hata mesajlarını kullanıcıya göstermek için hata yönetimini ele almak gerekmektedir.
- Validation Handler adında bir class oluşturulacak ve ControllerAdvice anotasyonu içerecektir.
- 23:13ControllerAdvice ve ResponseEntityExceptionHandler
- ControllerAdvice, Spring uygulamasında oluşabilecek hataları yakalamayı ve handle etmeyi sağlayan bir anotasyondur.
- ResponseEntityExceptionHandler sınıfı oluşturulacak ve bu sınıf ResponseEntityException'ı ele alacaktır.
- Handle metodunda ArgumentNotValid hatası ele alınacak ve kullanıcıya cevap verilecektir.
- 26:07Hata Listeleme ve Response Entity Oluşturma
- Modelin içerisindeki mesajları düzgün bir şekilde göstermek için oluşacak tüm hataların bir listesi tutulmalıdır.
- Tüm hatalar bir map'in içerisine alınacak ve bu map kullanıcıya cevap olarak dönecektir.
- Hatalar FieldError nesnesi kullanılarak field name ve mesaj olarak gönderilmektedir.
- 30:02Sonuç ve Kapanış
- Proje çalıştırıldığında Postman'da hataların anlamlı bir şekilde verildiği görülmektedir.
- Doğru olması durumunda HTTP status 200 cevabı verilmektedir.
- Videoda Java Validation anotasyonları kullanılarak hataların kullanıcıya anlamlı bir şekilde verilmesi gösterilmiştir.