REST ve SOAP, aslında sık kullanılan ama geliştiricilerin bile pek fazla telaffuz etmek durumunda kalmadığı veri aktarım mimarileridir. Genellikle işin görünmeyen, gizli kahramanı durumunda oldukları için; neden tercih ettiğimizi bilmeden; hatta kullanıdığımızdan haberdar bile olmadan kullandığımız yapılardır. Bugün; sizlerle birlikte Türkçe olarak pek fazla doğru kaynağın bulunmadığı veri aktarım mimarileri hakkında değerlendirmede bulunacağız.
REST ve SOAP mimarilerini tam anlamıyla anlamak için geniş bir bakış açısı kullanmalıyız. Bu bağlamda biraz daha temel yoldan gitmeye özen göstereceğim. Örneğin, uzak sunucuda kiralık evlerin yer aldığı bir veritabanımız var. Bu veritabanındaki verileri istemci tarafında nasıl kullanılırız? İşte bu durumda Application Programming Interface (API) öne çıkıyor.
Uzak sunucu ile istemci arasındaki veri iletişimini ve aktarımını sağlayan yapıyı bulduk. Peki bu yapıların kafalarına göre mi mimarileri var? Elbette hayır. Evrensel bir kullanıma sahip olabilmesi, verilerin istemcilerde kullanılabilecek şekilde iletilmesi için API’ler veri aktarım mimarileri kullanırlar.
REST ve SOAP
Veri aktarım mimarilerinden SOAP, uzun süre boyunca neredeyse rakipsiz olarak yüksek tercih edilme oranıyla 2018 yılında koltuğunu REST’e kaptırana kadar popülerliğini koruyordu. Ancak, REST’in getirdiği esneklik ve modern kullanım mantığı; SOAP’ın çok hızlı bir şekilde düşüş yaşamasına sebep oldu. Bu kadar sert düşüşe rağmen, daha çok eski yapılarına devam eden kurumsal devlet yazılımları hâlâ SOAP’ı tercih etmektedirler.
Bu kısıma kadar REST, modern olması sayesinde birkaç puan daha önde gözülebilir ancak iki mimarinin de bazı alanlarda birbirlerine üstünlük sağladığını söyleyebiliriz. Örneğin, SOAP sıkı kurallara sahip bir mimaridir. Bunun getirdiği faydalardan birisi de tahmin edebileceğiniz üzere gelişmiş güvenlik seviyesidir.
SOAP’ın katı mimarisi ile akışı sadece kendi belirlediği yolda sürdürmesi, dışarıdan müdahele ile değişim yaşamasını engellemektedir. Elbette bu şekilde yüksek güvenliğe sahip olması iyi bir şey fakat bununla birlikte esneklikten ve hızdan bir hayli uzaklıktadır. Yüksek trafik kullanımına neden olması ile birlikte iletişim esnasında pek farklı alternatife sahip olamazsınız. REST ise bu konuda daha esnek olmasıyla birlikte çok daha hızlı ve az trafik kullanımını sağlamaktadır. Daha hafif olması sayesinde günümüz mobil cihazlar dünyasında, mobil uygulamalar için neredeyse tartışılmaz birinci mimaridir.
Şimdi konuştuklarımızı toparlayalım ve madde madde listeleyelim.
Hız
REST, SOAP’dan her anlamda daha hızlı etkileşim sağlamaktadır. Daha gevşek kuralları olması sayesinde, süreçte takılma az olmakta ve bu sayede iletişim daha hızlı gerçekleşmektedir.
REST > SOAP
Güvenlik
SOAP, hız konusunda yaşadığı düşüklüğü güvenlik seviyesi ile telafi edebiliyor. İstemci tarafından gönderilen veriyi daha denetleyici biçimde taşımaktadır.
SOAP > REST
Kompleks İşlemler
SOAP, REST’e göre daha karmaşık işlemleri; bir kalıpta çözülmesini sağlayabilir. Örneğin, internet üzerinden bir ödeme gerçekleştireceksiz; sahipsiz bir kimlik ile bunu yapıyorsanız ve bu işlemin birden fazla yapıdan cevap alması ve bunu işlemesi gerekiyor. Burada sahipsiz gelen isteğin, belli yapılardan gelen verileri toplayıp; dışarıdan müdahale almadan ilerlemesini SOAP ile sağlayabilirsiniz.
SOAP > REST
Esneklik
REST, her açıdan daha esnek, basit olmasıyla birlikte kullanımı da kolaydır. Veri aktarımda kullandığı HTTP ile, GET, POST, DELETE ve PUT aksiyonlarını kullanması bu adımı da öne çıkarmaktadır. Ayrıca REST; JSON, HTML, XML, YAML, TXT formatlarında aktarım sağlayabilirken, SOAP sadece XML formatında veri iletişimi oluşturabilmekte.
REST > SOAP
Yazımızda sizlere REST ve SOAP veri aktarım mimarileri hakkında geniş bir rehber sunduk. Javascript Promises yapısı ile ilgili yazımıza da ulaşabilirsiniz.
Yararlanılan içerikler:
SOAP vs REST vs JSON comparison [2019] – https://raygun.com/blog/soap-vs-rest-vs-json/
What Is an API? – https://www.howtogeek.com/343877/what-is-an-api/
Yorum yap