Rest Api Nedir ?

Rest api platform bağımsız yazılımların haberleşmesi için kullanılan servislerden birisidir. Biraz daha açacak olursak php kullanarak yazdığımız bir yazılımın java kullanılarak yapılmış bir mobil uygulama veya swift kullanılarak yazılmış bir ios uygulaması ile haberleşmesini sağlayan yapıdır.

Rest Api Nedir ?

Rest api json veriler ile çalışan bir apidir.  Neden json diye soracak olursanız; json üst seviye programlama dillerinde kolayca işlenebildiği için json ile işlemler gerçekleştirilir.

Json olarak veri yani request apiye gönderilir api gelen veriyi alır işler ve geriye bir response yani cevap döndürür. Bu cevapta requesti yapan yazılım tarafından tekrar alınır.

json bilmeyen arkadaşların öncelikle json.org sitesinden json ile ilgili bilgi edinmelerini öneririm.

Rest Api Özellikleri

  • Platform bağımsızdır.
  • Sunucu ve istemcinin aralarında anlaşabildiği bir json protokolü mevcuttur.
  • HTTP methodlarından Get, Post, Put, Delete işlemlerini gerçekleştirebilir.
  • Request – Response mantığıyla çalışır.
  • Önbellekleme yapılabilir.
  • Soaptaki gibi katı kurallar yoktur. Kuralları apiyi yazan kişi belirler.

 

Rest Api Nedir ?

Yukarıdaki görsele bakacak olursak client yani istemci  sunucuya bir istek gönderiyor.

gelen isteği api alıyor ve arkaplanda sorguyla alakalı işlemleri gerçekleştirip geriye bir cevap döndürüyor.

 

Örnek verecek olursak: Kullanıcılarımızın olduğu bir veri tabanımız ve kullanıcı id sine göre bize kullanıcı bilgilerini veren bir rest apimiz olduğunu varsayalım.

Aşağıdaki şekilde bir get request ile kullanıcı bilgilerini görüntüleyebiliriz.

veya post methodu ile yeni bir kullanıcı eklemek isteyelim.

Ekleme işleminin gerçekleşme durumuna göre apinin bize cevap vermesi gerekir.

Bu dersimizde rest api hakkında bilgi edindik. Bir sonraki dersimizde ise rest api hazırlamaya başlayacağız.  Apimizi test ederken chrome eklentisi olan  Postman kullanacağız. Bir sonraki dersimizde postman eklentisini kurmuş olarak dersimizi okumaya başlamanızı öneririm.

Öncelikle yazacağımız rest apiyi kullanacak insanların gönderdikleri sorgulardan aldıkları cevap türlerini header içerisinde için HTTP mesajları eklememiz gerekmektedir. HTTP mesajlarının listesine buradan bakabilirsiniz.

Rest apinin temel mantığı tek bir base url kullanarak çoklu işlev gerçekleştirmektir. Biraz daha detaylı anlatacak olursam; örneğin bizim base urlimiz /users/  olsun bu linke:

  • POST methodu ile sorgu istek atarsak üye ekleme,
  • PUT methodu ile sorgu atarsak güncelleme,
  • GET methodu ile sorgu atarsak listeleme,
  • DELETE methodu ile istek atarsak silme işlemi gerçekleştirsin.

Rest apiyi hazırlarken örnek alacağımız proje basit bir üyelik uygulaması olacak. Apiyi tamamladığımızda yazdığımız aşağıdaki işlemleri gerçekleştirebiliyor olacak.

  • Üye Kayıt
  • Üye Giriş
  • Üye Bilgileri Güncelleme
  • Üye Bilgileri Çekme
  • Üyelik Silme

Apiyi hazırladıktan sonra android tarafında da bir uygulama hazırlayıp yazdığımız rest apiyi test edeceğiz.

Sitemizde henüz OOP dersleri yayınlamadığımız için yazacağımız rest apiyi salt php kodları ile hazırlayacağız. İstek olması durumunda OOP yani nesne yönelimli olarakta apimizi yazabiliriz.

Öncelikle veri tabanımızı hazırlayalım.

Apiye üye kayıt ekranından başlayarak yapmaya başlayalım.

Öncelikle apimize ait bir klasör oluşturup (örneğin mobilhanem/uyelik) temel ayarlarımızı yapalım.

1- Veri Tabanı Bağlantısı

db.php adında bir dosya oluşturup veri tabanı bağlantımızı yapalım. Rest apimiz boyunca ben veri tabanı işlemleri için PDO kütüphanesini kullanacağım.

Veri tabanı bağlantımızda hata olup olmadığını anlamak için tarayıcı üzerinden localhost/mobilhanem/db.php çalıştıralım. Boş bir sayfa çıkarsa bağlantımız sağlanmış demektir.

2- Kullanacağımız Fonksiyonlar

Hangi fonksiyonu ne için kullandığımızı üzerine açıklama olarak yazdık.

 

3- .htaccess Dosyası İle Url Yapısı

Biz gelen bütün istekleri index.php de karşılayacağız. bu yüzden apiye hangi url girilirse girilsin bu urli index.php ye yönlendirip urlin sonundaki değerleri de get methodu ile index.php den alacağız.

Kodlarımızı eklemeden önce örnek verecek olursak:

Kullanıcının göreceği ve kullanacağı url:
=> localhost/mobilhanem/users/{5}

Arkaplanada çalışan kimsenin göremediği url:
=> index.php?islem=user_id=5

normal şartlarda 1. urlin çalışması için uyelik/5 yolunda klasör yapımız ve içinde 5 i alabileceğimiz bir yapı olması gerekiyordu.
ama biz url yapımızı editleyerek yukarıdaki gibi yapacağız.

Başlangıçtaki .htaccess kodlarımız:

index.php sayfamızda apinin methodları ile ilgili kısımları ekleyelim. Hangi linkte ne komutu işletileceği ile alakalı koşularımızı ekleyelim.

Apimizin 1.adımı olan üye ekleme işlemini yaparsak, üye  ekleme bir CREATE işlemi olduğu için POST methodu kullanmalıyız.

4- Rest Api ile Http Post  Methodu Kullanımı

Get methodu nedir bilmeyenler get ve post methodunu anlattığımız dersimize  ve get ve post  methodu ile ilgili yaptığımız örneklere bakabilirler.  Rest apide de get ve post  methodunun kullanımında bir farklılık yoktur.

Şimdi üye eklemek için gerekli php kodumuzu yazalım ve geriye eklenme durumunu gösteren bir json çıktısı verelim.

Şimdi Postman aracılığı ile test edelim.

 

 

Rest Api Nedir ?

1. Kullanacağımız method. (Üye ekleme için POST)

2. Api URL. (Çalıştığınız api url yazın)

3. Değişkenleri gönderme şekli. Biz form elemanı olarak gönderdiğimiz için 2. seçeneği seçiyoruz.

4. Apiye gönderilecek değişkenler.

5. Header status kodu.

6. Apiye bilgiler gönderildikten sonra apinin bize vermiş olduğu cevap, output.

 

 

 

 

 

5- Rest Api ile Http PUT Methodu Kullanımı

Http put methodu get ve post methoduna göre biraz farklı çalışır. normalde istemci tarafından bize bir json veri gelir bizde bu json veriyi alıp diziye çevirmemiz gerekir. Json veriyi aşağıdaki şekilde alabiliriz.

yukarıdaki kod ekrana json bir çıktı üretecektir. Şimdi aldığımız json veriyi json_decode fonksiyonu ile diziye çevirelim. json_decode fonksiyonu ile ister bir objeye istersekte arraye çevirebiliriz.

örneğin:

istediğiniz yöntemi kullanabilirsiniz. Ben dersi analtırken object üzerinden anlatacağım.

Put methodu kullanırken nasıl veri alabileceğimizi ve nasıl çevireceğimizi  öğrendiğimize göre artık üye bilgilerini güncelleme işlemi yapabiliriz.

üye güncelleme işlemini de bitirdik arkadaşlar. Postman aracılığı ile test edecek olursak:

Öncelikle postmandaki raw kısmından raw data olarak json göndereceğiz. Sizde aşağıdaki görseldeki şekilde veri gönderirseniz çalışacaktır.

Rest Api Nedir ?

6- Rest Api İle Http Delete Methodu

Şimdi silme işlemi yapacağımız için httpy ait  delete methodunu kullanacağız. Sileceğimiz üyeye ait user_id değerini alıyoruz ve veritabanımızda o id ye ait bir üye varsa siliyoruz.

Delete işleminde de get kulanabiliriz. örneğin: http://localhost/mobilhanem/users/5 şeklinde link girdiğimizde postmana 5 numaralı id ye sahip üye silinecektir.

Şimdi son olarak üye bilgilerini listeleyip rest apimizi tamamlayalım.

7- Rest Api İle Http Get Methodu

Üye sil işlemindeki gibi bir user_id değeri gönderip geriye cevap olarak  üyeye ait bilgileri listeleyelim.

Ve böylelikle başlangıç seviyesinde rest apiyi  bitirmiş olduk.  Rest api kodlarının tamamına aşağıdaki linkten ulaşabilirsiniz.

 

Kaynak

Yorumunuzu Ekleyin

PHP Data Objects (PDO) Nedir?
Yükleniyor...