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.

instagram api Invalid request options. hatası ve çözümü

instagram api kullanırken resim yüklemediğimi ve karşılında invalid request options hatasını aldığımı gördüm. çözümü için yazdım sağa sola ama bulamadım. en son github’a birinin yazdığını gördüm google’dan. o da silmişti. önbellekten ulaştım arkadaşa sağ olsun yardımcı oldu. çözümü bir önceki versiyonu kurmak nasıl mı ?

gördüğünüz gibi sonuna 4.1.0 ekledik mi iş tamam oluyor.

laravel resim yükleme

validation kısmı

1024 kb, resim ve uzantısı orada yazanlardan olanların bize gelmesini istiyoruz.

 

controller resource örneği blade

web.php

controller içinde yer alan backend klasörü kategori controllerına admin/kategori linkine gidecek şekilde yaptık.

category modeli oluşturduk.

Kategori controller’i;

kategori_create.blade.php

kategori_edit.blade.php

kategori_list.blade.php

 

 

model ilişkiler tablo arası

one to one

bir yazının hangi kullanıcı tarafından yazıldığını öğrenmek için birebir ilişki. tablomuz post üye tablosu ise user

post tablosunun modeline fonksiyon oluşturup diyoruz ki. sen post tablosundaki user kolonundaki veriyi git üye modelinin üye_id kolonunda ara. peki bunu nasıl çalıştıracağız

one to many

bir kişiye ait birden fazla veri varsa. örn bir üyenin birden çok paylaşımı varsa. üyenin modeline;

sonuna ->count yazarsak bu verinin sayısını verir.

fonksiyonu çekme

kullanımı

 

eloquent model işlemleri

alt kategori model oluşturma kodunu bıraktım yukarı. migration ile oluşturmak istersek

ekleme işlemi için

create yerine insert’ü de kullanabilirsiniz.

ekleme işlemi 2

delete işlemi

update işlemi

arama işlemi

find tablodaki primary key ney ise onun içinde ara. örnek id’si 1 olanı aradık. id kolonu çünkü primary key. birden fazla için

createdate ve update date devre dışı bırakma;

table seçme

primary key seçme

create_date kolonunuz var ama ismi türkçe ise

böyle değiştir


request validation

örnek bir kontroller

bunu yazdığımızda herhangi birtanesi geçersiz olsa bile sonraki yazdığınız kodlara bakmadan hata mesajları view geri dönecektir. peki bu hata mesajlarını nasıl göreceğiz. ilgili view’a aşağıdaki kodları yazınız.

ya mesela dediniz benim ad textboxının bir özelliği var hata aldığımda onun classını kıp kırmızı yapmak istiyorum o da şöyle;

otomatik is-invalid değeri veriyor ve kullanıcıya renkli bir textbox sunuyoruz.

sadece ad textbox hatalarını görmek istiyorsan

laravel’in resmi sitesinde bunun gibi daha bir sürü validation örneği görebilirsiniz.

https://laravel.com/docs/6.x/validation

request ve form

form post action kısmına route’da belirlediğimiz linkin name’ni giriniz.

csrf eklemeyi unutma. formun içine

yazabilirsin. aşağıdaki iki yöntem daha var. biri meta diğeri javasciprt için. seç beğen al.

post edeceğimiz controller şöyle olmalı;

 

route kullanımı (web.php)

fonksiyon tanımlama

normal tanımlama

direk view’a yönlendirme yapma


link id yapısını yakalama

ikili id link yakalama

yakalanan değer null olursa ne olacak

bu routelarda function olan kısımları controller@fonksiyon yazarak direk oradan da işlem yaptırabilirsiniz.

slug ile yakalanan idlerin sadece harf veya sayılardan oluşmasını da yapabiliriz.

name ekleme

name yazılmış url’yi yakalama blade için

route ile profil sayfasına değer gönderme

 

ilgili linkten gelenlere özel işlem yaptırma (bu middleware kafanız karışmasın)

grup oluşturma ve kullanıcılara özel linkler oluşturma

prefix oluşturma ( admin/users – admin/profile başında admin bulunan sayfaları listeleyebilirsin.