Swift Generic Service

Merhaba arkadaşlar, bu yazımızda Swift ile nasıl generic bir servis oluşturulur bundan bahsedeceğiz. Generic bir servis yapısıyla beraber ileride ekstra bir şey değiştirdiğimizde kolayca değiştirebilir ve yönetebiliriz. Daha az kod ile servis isteklerinde bulunabiliriz.

Apple’ın servislerinden müzik, film, uygulama ve kitapları listelediğimiz uygulamada her istek için farklı bir fonksiyon yazmıştık. Az servis isteği atılan uygulamalarda böyle kullanmak mantıklı gibi görünebilir ama ileride büyümeyeceğinin garantisi yok. Bu yüzden bu projenin servis yapısını generic hale getirelim. Şu anki hali aşağıdaki gibidir.

Artık servis yapımızı 3 farklı sınıfa ayıracağız. Bunlar; sabit değişkenlerin tutulduğu APIConstants sınıfı, hangi isteklerin atılacağının tutulduğu enum yapıda olan APIRouter ve servis isteğinin generic sekilde atıldığı Services sınıfı.

APIConstants

Bu sınıfta genel olarak urller ve isteği gönderirken neler gidecekse bunlar bulunuyor.

APIRouter

Buradaki yapımız tamamen enum şeklinde. Yeni bir istek oluşturacağımız zaman buraya case şeklinde ekleyebilir ve ardından hangi method ile gönderileceğiniz, hangi token değerini alacağınız, hangi url’e gideceğini, hangi parametreleri alacağını belirlememiz gerekiyor.

Burada örnek olması için parametre alan, farklı metodları bulunan bir yapı ekledim. Bunun üzerinden gidebilirsiniz.

Services

Bu sınıfımızda ise generic bir fonksiyon oluşturup, her isteği bu generic fonksiyon üzerinden atacağız. Singleton ile shared adından bir değişken oluşturup, bu değişken üzerinden ilerleyeceğim.

İstek gönderirken ise aşağıdaki gibi iletiyorum.

Sorularınız olursa mail veya yorum atarak ulaşabilirsiniz. Projeye ise buradan ulaşabilirsiniz. Daha fazla yazıya ise buradan erişebilirsiniz.

İyi çalışmalar.

Leave a Comment

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.