laravel too many request çıktısını json olarak verme

laravel api kullanırken limit koyarsanız ve o limiti aşarsak “too many request” diye bir html sayfası göstermekteyiz. ya kardeş api bu hatayı da geri dönerken bunu json olarak göndersene. bunun için şu yöntemi yapıyoruz.

aç abi şu sayfasyı: app/Exceptions/Handler.php

en üste ilk önce şu classı tanımlayın

şu kod satırının hemen altına içindekini silmeden

bu kadar amk ya bu kadar ya.

limit koymayı da yazayım bana lazım olur.

rest api #14 throttle limit kullanımı

throotle api istekleri için kişilere verilen limit anlamına gelmektedir. örneğin 1 dakikada 60 sorgu yapılabilir gibi. varsayılan olarak görünen değer için kernel.phpyi açıyoruz

burada 1 dakikada 60 sorgu diyor. ya ben bunu yapmak istemiyorum kişilere özel tanımlayacağım dersen buradaki throottle kısmını silin.

hemen api.php’yi açın

yazıyoruz. sonra users tablosunda rate_limit diye bir sutun oluşturun orada artık kullanıcı dkda kaç sorgu yapsın istiyorsanız yazın.

rest api #12 sayfa bulunamadı ve kayıt bulunamadı geri dönüşleri

app/exceptions/handler.php içinde en alttaki render kısmına geliyoruz.

 

rest api #11 response sayfası ve validation

bir tane responseapi diye bir kontroller oluşturalım aşağıdaki kodu yazalım.

sonra hangi controllerda kullanacak isek onun fonksiyonların başlamadan class tanımının yapıldığı yerde (class contollerismi extends Controller) sonu controller diye biten kısma yukarıda oluşturduğumuz controller ismini verin. şimdi kullanıcağımız controllera gelip;

örneğin bir veri ekleme yapıyoruz

bu rest apinin kaynağı ve yukarıdaki kodların yaratıcı olan cem abimizin rest api videosunda daha fazlasını bulabilirsiniz : https://www.udemy.com/course/laravel-ile-sifirdan-restful-api-uygulamalari-gelistirme/

rest api #10 ürünleri listelerden kategorileri de gösterme

ilk önce controllerimiza ürünleri çekelim;

sonra api resource oluşturmamız gerekiyor hemen oluşturalım;

Şimdi kategorileri çekeceğimiz için kategoriler için de bir resource oluşturalım.

Kategoriresource içine

Urunkategorileri resource’a;

şimdi bu kategorimodel nerden çıktı derseniz o Ürün tablomuzun modelinden çıktı. Ürün tablomuzun modelinde kategori ile ürünleri bağladığımız fonksiyonu direk buraya bağlayarak kategorileri listeleyebiliriz.

en son kendi tekrar kendi controllerımıza gelelim ve tekrar ekleme yapalım

 

rest api #6 – insert

 

rest api #4 – update işlemi

modelimiz tanımlıysa ve gelen tüm verileri güncelleyeceksek

yok kardeşim ben tek kolonu güncelleyeceğim dersen

hepsi normal ekleme silme işlemi gibi zaten.

rest api #3 – read işlemi

zaten resource ile show metodu geliyor. eğer model tanımlamadıysak controller’a

eğer modelimiz varsa

 

rest api #2 – resource controller oluşturma

api için resource oluşturmak için;

sonuna sadece –api koyuyoruz. burada api oluşturduğumuz için create ve edit sayfaları yok. çünkü kullanıcı arayüzlü bir ortam yok.

modelli oluşturacaksak

bakın modeli yazdığımızda direk gelen id’leri return yaparak verileri listeleyebiliyoruz.

route aşaması da aşağıdaki gibi. 2 tane koydum bilerek gönlümüz açılsın diye.

 

rest api #1 – route tanımlama

laravel ile rest api oluşturma ilk ders

routes bölümünden api.php kısmından normal tanımlama yapar gibi yapabilirsiniz. buradaki linke domain üzerinden xx.com/api/tanımladığınroute adresinden gidebiliyorsun. örneğin ali.com diye sitemiz var.

böyle bir route’a “ali.com/api/deneme” ile gidebiliyoruz.

ya işte ben api koymayacağım başka bir şey koyacağım adını. o da kolay.

app -> providers -> routeserviceprovider.php içinden en altta mapapiroutes fonksiyonunda yer alan prefix’i değiştir olsun bitsin.

gördüğünüz gibi route hala aynı route. sadece başında api oluyor. laravel derslerindeki route dersine gidip diğer ayrıntılı route tanımlamalarını görebilirsiniz.