Kayıt Ol

Giriş

Şifremi Kaybettim

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Giriş

Kayıt Ol

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi adipiscing gravdio, sit amet suscipit risus ultrices eu. Fusce viverra neque at purus laoreet consequa. Vivamus vulputate posuere nisl quis consequat.

Volley ile Rest Api Kullanımı ( POST, GET, PUT, DELETE )

Merhaba arkadaşlar,

Bugün dersimizde sizlere Volley kütüphanesi kullanarak PHP ile hazırlanan Rest Api leri android uygulamamızda nasıl kullanacağımıza bakacağız.  Bu dersimizde Rest Api leri oluşturma ile ilgili ayrıntılı bilgiyi bulabilirsiniz. Şimdi hazırlanan rest api leri kullanarak Volley ile Rest Api Kullanımı dersimizi incelemeye başlayalım.

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

Volley kullanımı ile ilgili sitemizde bulunan bu dersi de ayrıca inceleyebilirsiniz.

Şimdi gelelim kodlarımızı oluşturmaya ; volley kütüphanesinin projeye dahil edilmesi ile ilgili diğer derslerimizde ayrıntılı bilgi vermiştik fakat tekrardan adımlara bir daha bakalım; öncelikle volley kütüphanesinin build.gradle dosyamıza ekliyoruz ve projemizi sync ediyoruz.

Daha sonra kendi Application sınıfımızı yaratıyoruz Volley isteklerinin kontrolünü kolaylaştırmak için:

AppController.java

Şimdi ilk kullanıcı eklemek için kullanacağımız POST isteğini oluşturalım ; aşağıdaki kaynak kodları incelediğimizde butona basıldığı anda StringRequest istediğinde bulunuyoruz ve sunucuya getParams methodunu ile gerekli parametre değerlerini gönderiyoruz. Php kodlarınıda incelerseniz neden bu şekilde değerler gönderdiğimi daha iyi anlayacaksınız. Aslında burada hangi değerleri göndereceğimiz hangi değerleri alacağımız servisin ne şekilde oluşturulduğuna bağlı. Bizden servisin istediği değerleri kullanıcı tek tek girdikten sonra butona basarak istekle bulunuyor. Burada dikkat etmemiz bir diğer konu ise; HashMap oluşturup değerleri gönderdiğimiz için bir key-value ilişkisi içerisinde olmak zorunda ve bizden beklenen key değerleri sunucu tarafında ne ise karşılığı android tarafında da o olmalıdır. Örn: kullaniciAdi yerine kullaniciadi yazmanız bile hatalı bir istek yapmanıza neden olacaktır. ( kullaniciAdi, adSoyad, posta, telefon, sifre ) StringRequest methodunda POST isteği yaptığımız ve hangi url e bu isteği gönderdiğimizde kodda açık bir şekilde belirtilmiştir. Eğer servisten hatasız bir şekilde bir cevap dönerse onResponse methoduna düştüğünü göreceksiniz eğer debug ederseniz ki kaynak kodları indirip çalıştırdıktan sonra debug etmeniz faydalı olacaktır. onResponse da bize gelen cevap String olduğu için biz onu önce JsonObject e çevirdik daha sonra içerisinde bize dönen cevaplardan “mesaj” kısmını alıp ekranda kullanıcıya gösterdik.

Bize dönen json stringini alıp bu linke yapıştırdığımızda eğer istek başarılı ise aşağıdaki cevabı aldığınızı göreceksiniz.

 

 

 

 

 

 

Eğer herhangi bir nedenden dolayı istek başarısız olursa onErrorResponse methoduna düşecektir ve kodlara baktığımızda sunucudan gelen cevabı parse edip ekranda gösteriyoruz.

POST ile ilgili ekran görüntümüz aşağıdadır:

PostRegisterUser.java

POST ile ekleme işlemini tamamladıysak şimdi eklediğimiz kullanıcı ile ilgili bilgileri GET isteğini kullanarak ekranda gösterelim. Kaynak kodlarını incelediğimizde StringRequest istediğinde bulunuyoruz ve sunucuya “user_id” değeri ile görüntülemek istediğimiz kullanıcının id sini gönderiyoruz. GET isteğinde bulunduğumuz içinde ilgili url ile birlikte bu değeri eklemiş oluyoruz. Yine aynı şekilde herhangi bir sorun yok ise onResponse methoduna düşüyor ve dönen string değerini JsonObject sine çevirip ilgili değerleri çekerek ekranda gösteriyoruz. Yine herhangi bir hata oluşması durumunda onErrorResponse methoduna düşerek gerekli işlemleri yaptırıyoruz.

not: ( GET methodu ile yapılan istekler tarayıcının adres satırında görünür. )

( örnek: http://vehbiakdogan.com/mobilhanem/index.php?user_id=1 )

GET  isteği sonucu bize dönen json örneği aşağıdaki gibidir.

GET ile ilgili ekran görüntümüz aşağıdadır.

 

GetListUser.java

GET isteği yaparak ekli olan kullanıcı ile ilgili bilgileride ekrana getirip gösterdiğimize göre şimdi kullanıcı id sine göre istediğimiz kullanıcıya ait bilgileri nasıl güncelleyeceğimize bakalım. Güncelleme içinde  JsonObjectRequest methodunu kullanarak PUT isteğimizi gerçekleştiriyoruz. Kaynak kodlara bakarsak eğer; güncelleme için sunucunun bizden istediği değerleri JsonObject kullanarak base url e gönderdiğimizi göreceksiniz. ( kullanici_adi, ad_soyad, posta, telefon, user_id değerlerini kullanıyoruz ve kullanıcı tarafından girilen verileri bu değerler ile ilişkilendirip gönderiyoruz. )

PUT  isteği sonucu bize dönen json örneği aşağıdaki gibidir.

 

 

 

 

 

PUT ile ilgili ekran görüntümüz aşağıdadır.

PutUpdateUser.java

PUT isteği yaparak ekli olan kullanıcı ile ilgili bilgileride güncellediğimize göre şimdi kullanıcı id sine göre istediğimiz kullanıcıyı nasıl sileceğimize bakalım. Silmek içinde  StringRequest methodunu kullanarak DELETE isteğimizi gerçekleştiriyoruz. Kaynak kodlarını incelediğimizde sunucuya “user_id” değeri ile silmek istediğimiz kullanıcının kullanıcı id sini gönderdiğimizi göreceksiniz. GET isteğinde bulunduğumuz içinde ilgili url ile birlikte bu değeri eklemiş oluyoruz.

DELETE  isteği sonucu bize dönen json örneği aşağıdaki gibidir.

 

 

 

 

 

DELETE ile ilgili ekran görüntümüz aşağıdadır.

 

Daha sonra bu söylediğim istekleri gerçekleştirmek için ekrana dört adet buton koyuyoruz ve tıklandığında ilgili sayfalara yönlendiriyoruz ; ilk çalışacak olan activity miz aşağıdadır.

HomeActivity.java

Gördüğünüz gibi Volley ile Rest Api Kullanımı nı gerçekleştirdik. ( POST, GET, PUT, DELETE ) isteklerini hangi senaryolarda gerçekleştirdiğimizi gördük. Kullanıcı ekleyebilmek için POST methodunu kullandık daha sonra eklediğimiz kullanıcı bilgileri gösterebilmek için GET methodunu kullandık, kullanıcıda güncelleme yapabilmek için PUT methodunu kullandık ve son olarak kullanıcıyı silebilmek için DELETE methodunu kullandık.

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

Mobilhanem.com üzerinden anlattığımız mobil uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.

Bir dahaki dersimizde görüşmek dileğiyle..

Yazar Hakkında

Yüksek Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği (4/3.30) (2010-2014) Lisans : Viyana Teknik Üniversitesi / Bilgisayar Bilimleri (2013)
  • furkan

    gerçekten çok iyi anlatım olmuş elinize sağlık hocam. yayınladığınız dersleri video lu olarak göstermeniz uzun zamnadır beklediğim bir konuydu.

    • Alper Beyler

      ne demek elimizden geldiğince yardımcı olmaya çalışıyoruz. evet artık video lu olarak ders içeriklerini hazırlamaya özen gösteriyoruz.

  • abdullah kalayci

    Hocam tam böyle bir konuyu öğrenmeme gerek olduğu sırada bunu paylaşmanız çok önemli benim için. Bunun için size teşekkür ederim.

    • Alper Beyler

      biz teşekkür ederiz işinize yaradığına sevindim.

  • Mahmut Oktay

    Alper hocam güzel bir çalışma olmuş tebrikler. Aklima takilan kisim şu. Volley ile php server arasinda guvenli bir iletişim nasil saglanabilir. Mesela volley ile hangi parametrelerin post edildiği uygulama tersine mühendislikle decompile edildiğinde anlaşılabilir. Dışardan basit bir form aracılığı ile servere saldırı olabilir. Rest api ile php servisin yalnizca uygulamadan gelecek requestlere cevap verebilme özelliği nasıl sağlanabilir. Saygılarımla

    • Alper Beyler

      ssl kullanabilirsin böylece dinleme yapmayı engellersin. token kullanırsın android tarafında da proguard ile kodları karıştırırsın çözülmesini zorlaştırmış olursun.

  • Efe

    İyi günler ben şöyle bir sorun yaşıyorum. ListView’a Jsoup ile parçaladığım xml parçalarını ekliyorum fakat bunu ekranda gösterdiğimde listView boş gözüküyor. Taa ki ekranı bir kez açıp kapayıncaya kadar…

    Yani sorunum activityi güncellemek sanırım ama nasıl yapmalıyım bununla ilgili bir kod bloğu mevcutsa paylaşırsanız sevinirim…

  • Gökhan Korkmaz

    Verilen url calismiyor kontrol edebilirmisiniz?