SOAP ve REST nedir ? Aralarındaki farklar nelerdir ?

Merhabalar, bugünkü yazımda SOAP ve REST servisler arasındaki farklar ile ilgili yaptığım araştırmaları sizlere aktarmaya çalışacağım. Son zamanlarda; hemen hemen her gün kullandığım kavramlar hakkında, teorik bilgi açısından eksiğim olduğu hissiyatındayım. Bence bunu kırmanın yolu daha çok okumak ve daha çok araştırmaktan geçiyor.

Confucius’un şu sözünü gerçekten çok seviyorum.

“Kişi her gün yeni eksiklerini bulup ortaya çıkarabiliyorsa ve her ay ustalaştığı konuları aklında tutabiliyorsa, onda öğrenme tutkusu vardır diyebiliriz.”

Haydi Başlayalım !

Web Servis nedir ?

  • Uygulamalar tarafından kullanılan metotların bir sunucu üzerinde çalıştırılıp, değer döndürmesini sağlayan yapılardır.
  • Farklı uygulamalarda veya farklı teknolojilerde kullanılabilecek metotları bir kere yazılıp , platformdan bağımsız bir şekilde web servisler sayesinde çalıştırılabilir.
  • Web servis mimarisi HTTP üzerine kurulmuş bir yapıdır. Genel itibariyle web servise bir istek gelir ve web servis bu isteği yapıp bir sonuç döndürür. Web servislerin bu işlemi yapabilmesi için tanımlanmış farkı yöntemler bulunmaktadır. Bunlarda biri SOAP , diğeri ise REST protokülüdür.

SOAP Protokolü

  • Simple Object Access Protocol yani SOAP uygulamalar ile web servisler arasındaki bilgi aktarımı sağlayan XML tabanlı protokoldür.
  • Web servise giden bilgi XML olarak gönderilmektedir. Gönderilen bu bilgiler web servis tarafından yorumlanır. Yorumlanan sonuç ise XML olarak geri döndürülür.
  • XML verisinin nasıl yorumlanacağının tanımlanması gerekmektedir.
  • Servis tanımlaması WSDL standartı ile gerçekleştirilir.

REST Protokolü

  • REST yapısında işlemler resource(kaynak) yardımı ile gerçekleştirilir.
  • Resource, URL ile tanımlanır. Bu bir metot tanımlaması veya bir değişken olabilir. Yani bir tane servisiniz var ve bu serviste yaptığınız işlemler ile ilgili metotunuzu controllerda çağırıyorsunuz. Ve bu metotu başka bir uygulama da kullanmak istiyor. O zaman bu controller içerisindeki metotun URL’ine ulaşması gerekir.
  • REST’te SOAP’ta olduğu gibi XML yardımıyla metotlar çağrılmaz. Onun yerine o metotu çağıracak olan URLler ile web servise HTTP protokolüyle istek gönderilir. Böylece WSDL gibi standartlara ihtiyaç duyulmaz. Çünkü zaten gerekli işlemleri HTTP protokolü gerçekleştirmektedir.
  • SOAP ile getOrderName şeklinde çağırılan, REST ile /Orders/Name/1 şeklinde çağırılır.
  • REST’te dönülen tipin XML olması da zorunlu değildir. JSON, XML,TXT,HTML gibi veri türünde değerler dönebilir.
  • REST tabanlı web servislerde HTTP metotlarına özel yapılar yüklenir ve web servise HTTP isteği geldiği anda bu HTTP metotlarına uygun şekilde çalıştırma işlemi gerçekleştirilir.
  • REST tabanlı yapıda iki tip URL bulunmaktadır. Collection URL ve Element URL.
  • Array,list gibi veri yapıları için Collection URL kullanılır. Element URL ise değişkenler üzerinden işlem yapılmak için kullanılmaktadır.

SOAP ve REST Karşılaştırması

  • Her ikisi de HTTP protokolünü kullanır. Fakat REST için HTTP protokolü zorunludur. SOAP ise TCP,SMTP gibi protokolleri de kullannabilir.
  • SOAP; XML şeması kullanırken, REST; URL şeması kullanmaktadır.
  • SOAP XML veri tipini desteklerken, REST’te istenen veri türüyle işlem yapılabilmektedir. Örneğin JSON veri tipini ele alalım . JSON veri tipi XML’den çok daha düşük boyutlarla veri tutabildiği için REST ile daha hızlı işlem yapılabilmektedir.
  • SOAP ile WSDL ile tanımlama şartı gerektir. Ancak REST için bu zorunluluk yoktur. Çünkü HTTP metotlarıyla tasarlanabilmektedir
  • Test ve hata ayıklama işlemi için REST daha kolaydır. Çünkü HTTP hatalarını döndürmektedir. SOAP için ise hata ayıklama araçları gerekebilir.
  • Cacheleme işlemi SOAP ile daha karmaşıktır. Çünkü XML requestleri yapmak gerekebilir. Ancak REST ile basit bir HTTP Get metodu kullanıldığı için cacheleme işlemi daha kolaydır.
  • Güvenlik ve dökümantasyon açısından SOAP, REST’e göre daha çok gelişmiştir.

Bir sonraki yazıda görüşmek üzere 🙂

Kaynakça

Rest, Restful ve Soap kavramları
Rest ve Restful Kavramları Rest, client-server arasındaki iletişimin HTTP protokolü sayesinde kolay ve hafif bir…cagataykiziltan.net

REST / SOAP API Nedir? Farkları Nelerdir?
Api Nedir?medium.com

http://osmansoylemez.com/?p=207

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir