Buradasın
ASP.NET Core Web API'de Exception Handling ve Custom Response Model Oluşturma Eğitimi
youtube.com/watch?v=9VeNOtimY3kYapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir konuşmacının kendi geliştirdiği açık kaynak kodlu exception handling middleware paketini test ettiği ve ASP.NET Core uygulamalarında exception handling konusunu anlattığı bir eğitim içeriğidir.
- Video, exception handling ve middleware kavramlarını açıklayarak başlıyor, ardından bir Web API projesi üzerinden test yapılıyor. İçerikte default mesaj ve status kod özellikleri, exception message action fonksiyonu, exception type list özelliği ve custom response model creator sınıfının nasıl oluşturulacağı adım adım gösteriliyor.
- Eğitimde ayrıca kütüphanenin nasıl özelleştirilebileceği, development modunda detayların nasıl gösterilebileceği, default HTTP status kodunun nasıl değiştirilebileceği ve content type'ın nasıl ayarlanabileceği gibi özellikler test ediliyor. Konuşmacı, kendi kütüphanesinin GitHub'da paylaşıldığını ve NuGet paketinde bulunabildiğini belirtiyor.
- 00:06Exception Handling Middleware Tanıtımı
- Videoda kendi yazdığı açık kaynak kod olarak paylaştığı ve Nugette paketi olarak yayınladığı bir exception handling middleware test edilecek.
- Proje GitHub'da public olarak paylaşılmış ve dokümantasyonu bulunmaktadır.
- Exception handling ve middleware konuları hakkında daha önce kanalda yayınlanan videolara kanal üzerinden veya video açıklamalarından ulaşılabilir.
- 01:07Test Projesi Oluşturma
- Exception handling middleware'ı test etmek için bir Web API projesi oluşturulmuştur.
- Controller'da rastgele bir exception (test exception message from controller) fırlatılmıştır.
- Uygulama çalıştırıldığında, hata mesajı sadece text tipinde bir hata kodu olarak dönmektedir.
- 02:36Geliştirme ve API Hataları
- Startup içerisinde development modunda bir development page kullanılmaktadır.
- API'ye çağrı yapıldığında detaylı bir hata mesajı ile karşılaşılmaktadır.
- API geliştirirken dış dünyadan gelen client'lara gereksiz bilgiler içeren hata mesajları döndürülmemelidir.
- 03:44Middleware Kullanımı
- Exception handling'i controller altında try-catch kullanarak yapmak yerine, middlewarelerle merkezi hale getirip tek noktadan yönetebiliriz.
- Nuget paketinin ismi kopyalanarak projeye eklenecektir.
- Bu kütüphane .NET 5 uygulaması için geliştirilmiş olup, .NET Core projelerinde de kullanılabilir.
- 05:39Middleware Kurulumu
- Konfigüre metodu altında gerekli satır eklenerek middleware kurulumu yapılır.
- Middlewareler endpoint'ten önce eklenmelidir.
- Uygulama çalıştırıldığında, 500 Internal Server Error döndürülmekte ve header'da JSON tipi belirtilmektedir.
- 07:17Middleware Özelleştirme
- Middleware'ı özelleştirmek için dışarıdan bir option alınabilir.
- Options parametresi ile "is development" özelliği aktif edilebilir, böylece geliştirme modunda detaylı hata mesajları görüntülenebilir.
- Default HTTP status kodu ve content type değiştirilebilir, örneğin 500 Internal Server Error yerine 502 Bad Gateway döndürülebilir veya JSON yerine text content kullanılabilir.
- 10:36Exception Handling ve Default Message
- Application son olarak bırakılarak, optionların içerisinde default message özelliği kullanılarak herhangi bir mesaj geriye dönebilir.
- Ediblock mod true iken exception'ın bütün detayları basıldığı için default mesajın önemi yoktur, bu mod false veya fold olarak set edildiğinde default mesaj dışarıya verilir.
- 11:58Exception Message Action
- Exception message action, HTTP context ve exception parametrelerini alan bir fonksiyondur ve dışarıya test döner.
- Normal şartlarda bir exception oluştuğunda middleware yakalayıp ilgili işlemleri yapar, ancak action set edilerek sistemde bir exception oluştuğunda özel bir metodun çalışması sağlanabilir.
- Action ile HTTP context'i kullanarak response status kodu, content type ve response içeriği özelleştirilebilir.
- 15:47Exception Type List
- Exception type list özelliği ile sistemde belirli exceptionlar oluştuğunda özel bir metodun çalışması sağlanabilir.
- Sadece belirli exception türleri (örneğin Argument Null Exception) için exception handling yapılabilir, diğer exceptionlar yakalanmaz.
- Birden fazla exception türü eklenerek hem exception tipinde hem de diğer exception türlerinde özel işlemler yapılabilir.
- 18:24Response Model Creator Kullanımı
- Response model creator, bir interface'den türemiş bir class istiyor ve bu class'ın creator'ını vermek gerekiyor.
- Default response modeli HTTP status code ve exception message içeriyor, ancak özelleştirilebilir.
- Custom response model creator sınıfı oluşturulup, interface'i implemente ederek geriye object tipinde bir nesne dönülüyor.
- 19:51Model Özelleştirme
- Dinamik olarak bir model yaratılabilir, örneğin "exception message" yerine "mask" olarak değiştirilebilir.
- Modelin içerisindeki exception nesnesinin detayları tostring'e çevrilerek alınabilir.
- HTTP status kodu gibi istenmeyen özellikler gösterilmeyecek şekilde özelleştirme yapılabilir.
- 22:46Kütüphane Kullanımı ve Avantajları
- Web API'larında mutlaka bir exception handling mekanizmasına ihtiyaç duyulur ve bu kütüphane bu işlevi sağlar.
- Parametre göndermeden de hata mesajı döndürülebilir, ancak sistem içerisindeki hatanın detayları karşı tarafa gönderilmemelidir.
- Bu kütüphane sayesinde tüm mesajlar tek bir noktadan kontrol edilebilir ve hata mesajları text base olarak gönderilir.
- 24:13Kütüphane Geliştirme ve Katkı
- Kütüphanenin gelişmesine yardımcı olmak için yeni özellikler videonun yorumlar kısmına belirtilebilir.
- GitHub'daki projeye destek verilebilir, kendi branchler oluşturulup collaborator olunabilir.
- Kütüphanenin unit testleri mevcuttur ve kodları indirip lokal olarak çalıştırılabilir.