Merhabalar,
Api tasarlarken yanlış ve/veya eksik requestler(istekler) için exception handler(hata durum yönetimi) dönmemiz gerekeken durumlarla karşılaşabiliriz.Örneğin veritabanında kayıtlı olmayan bir ürün id’si üzerinde işlem yapmak istersek haliyle sistemin uyarı mesajı vermesi gerek. Api inşaasında ise uyarı mesajlarımızı yalnızca html formatta değil duruma göre json formatında da vermemiz gerekebilir. Bu sebeple client nasıl bir request atarsa o isteğe göre response dönmemiz gereklidir.
mesela isteğimiz şöyle olsun id’ si 1300 olan ürünü güncelleme isteği atıyor olalım(böyle id li bir ürün olmadığından hata vermesi gerekir) ve json olarak veriyi talep ediyoruz.

method : PUT
header : Accept “application/json”
uri : /api/products/13000
status : 404

görüldüğü gibi eğer biz hatalı bir isteğe uygun bir uyarı tanımlamazsak bunun gibi görünmesini istemediğimiz açıklar verebiliriz.Bunu önlemek için Laravel de ”appException” dizininde bulunan Handler.php dosyasında şu değişiklikleri yapmalıyız.

burada yaptığımız şey nedir ? diyoruzki eğer gelen hataya ($exception) uygun hazır bir cevabımız yoksakendimizin hazırladığı mesajı döndür. Tabii bu mesaj da json formatında olsun.

herşey güzel de peki gelen istek json değilse bizim bu mesaj nasıl görünecek ?

Fakat biz bunu beğenmedik. Eğer gelen isteğin üst başlığı json değilse bize html hata mesajı gelse daha güzel olur. Bunu düzeltmek için şöyle yaparız.

Burada ne yaptık ? dedik ki eğer bizim isteğimiz json ise sen ekrana “not found “ yazdır ve http kodunu 404 yap. Zaten istek json değilse laravelin kendi html exception mesajını döndür return parent::render($request, $exception);

Sonuç :