Alamofire ile Api Çağrıları nasıl yapılır? Get, Post, Put, Delete kullanımı.

Ferhan Akkan
3 min readApr 8, 2020

--

Merhabalar ,

Bugünkü yazımda sizlerle Alamofire kütüphanesine bakacağız.

Öncelikle neden ve ne zaman Alamofire kullanmamız gerektiğini açıklamak istiyorum.

  • Alamofire ile çok daha düzgün ve okunabilir kod yazabilirsiniz.
  • Size vakit kazandırır.
  • Herhangi bi negatif yönü yoktur.

Peki URLSession ile çağrılarımız yapmak yanlış mı? Tabikide değil. Az sayıda çağrınız olacak ise URLSession kullanabilirsiniz ama çok fazla çağrınız olursa projenizin ilerleryen süreçlerinde kod karmaşıklığı ile başınızın ağırmaması için Alamofire’ı tercih etmenizde fayda var.

Daha önceden api’ler ile hiç çalışmamış kişiler içinde birkaç notum olacak. Api’ye veri gönderirken temel aldığımız 4 durum bulunmakta.

  • Get: Api servisine herhangi bi veri göndermeden belirlenen linkteki veriyi çekmek.
  • Post: Api servisine veri göndermek için kullandığımız methoddur. Verileri parametre olarak [String:Any] yapısında karşıya gönderirirz.
  • Put: Daha önceden oluşturulmuş bi veriyi güncellemek istediğimiz zaman Put methodunu tercih ederiz.
  • Delete: Tahmin edebileceğiniz gibi istenilen lokasyondaki veriyi silmek için kullanırız. Biraz sonraki örnekte parametre göndermeden Delete işlemi yapacağız ancak parametre göndererek’te yapılabilmektedir.

Yeterince işin sözel kısmına baktığımıza göre bir de kod üzerinden örneklendirelim.

Projemizi oluşturalım ve xcode’u kapatalım.

Sıra Alamofire’ı projemize dahil etmekte. Bunun için CocoaPods’u kullanacağım.(Başka yöntemlerde bulunmaktadır.)

Terminalimi açtım ve proje lokasyonuma gittim. ‘pod init’ ile Podfile’ımı oluşturdum. Oluşturduğum Podfile’ı açıp “ pod ‘Alamofire’ “ ‘ı ekleyerek save edip kapattım. Terminalime dönüp pod install dedikten sonra yükleme işlemi gerçekleşti. Tekrar Xcode’u açıyoruz lakin .xcworkspace seçmemiş gerekiyor.

İlk olarak bizim kullanacağımız api sağlayıcısı : https://jsonplaceholder.typicode.com .

Arada konu dışı olarak birşey daha eklemek istiyorum eğer ki kullanacağınız api’nin adresi https değil de http ile başlıyorsa Apple güvenlik kuralları gereği işlemi engeliyor bunun için info.plist’e aşağıda gördüğünüz satırları eklemeniz gerekiyor.

Şimdi devam edelim. Projemizi oluşturduk, pod’umuzu yükledik sıra geldi arayüzü yapmaya. Yazıyı daha hızlı ve basit kılabilmek arayüzü basit 4 adet button ile oluşturdum.

Tabiki sonrasında bu butonları ViewController’a bağladım. Ben her button için ayrı fonksyon yaratmamak için hepsini tek fonksyona bağladım. Hangi butona basıldığı buttonun title’ına göre bakıyorum siz buttonları ayrı ayrı tanımlayabilirsiniz.

Şimdi işlemlere başlamadan önce apimizin kılavuzuna göz gezdirmenizi rica edeceğim. Çünkü işlemleri doğru yapıp yapmadığınıza bu kılavuzda gösterilen response’a (api’den bize dönen data) göre bizdekini kontrol edeceğiz. Guide: https://jsonplaceholder.typicode.com/guide.html

Siz koda aşağıdan bakarken bende sizlere adım adım nasıl ilerlediğimizi iletiyim. Öncelikle her bir request için ENDPOINT dediğimiz gidilmek istenen link noktası bulunmakta. Aynı api’de birden fazla ENDPOINT’e gideceğimizden dolayı link belli bi noktaya kadar aynı. Bundan ötürü her seferinde aynı şeyi yazmamak ve kod karmaşasını azaltmak için bi baseUrl oluşturuyoruz.

Requestlerimizi başlatmak için AF. request’e baseUrl+gitmek istediğimiz yolu yazarak request yapılacak yeri belirliyoruz. Method olarak da 4 seçenekten birini seçiyoruz yapmak istediğimiz işleme göre. Şuan kod çalışıyor ondan dolayı ben size sadece Post’u açıklayacağım ancak mantık genel olarak aynı.

Post ile göndermek istediğimiz parametreleri params değişkenine [String:Any] şeklinde tanımlıyoruz. Sonrasında requestimizi oluşturuyoruz. Oluştururken ENDPOINT’u belirliyoruz, method tipini seçiyor ve az önce tanımlamış olduğumuz parametreleri requestimize yerleştirip gönderiyoruz.

Api’den bize cevap geldiğinde ise gelen response Alamofire tarafında parse ediliyor ve “response” değişkenine atanıyor. Bizim ilk yapmamız gereken herhangi bir hata mesajı aldık mı diye kontrol etmek. Eğer ki hata yok ise response u ekrana consolumuza basıyoruz. Dokumantasyonda görmüş olduğunuz response’un bizim gönderdiğimiz verilere göre uygun dönüşün yapıldığını görmüş olacaksınız.

Bu yazımda mümkün olduğunca Alamofire’ı nasıl kullanacağınız ve detaylarını anlatmaya çalıştım. Umarım sizlere faydalı olur.

Projenin tamamı için : https://github.com/ferhanakkan/ApiCallWithAlamofireExample

Alamofire : https://github.com/Alamofire/Alamofire

Api: https://jsonplaceholder.typicode.com

--

--