REST ve SOAP Nedir?

REST ve SOAP Nedir?

Veri aktarımı için yaygın olarak kullanılan iki yöntem olan REST ve SOAP’ı inceleyelim.
Elif Koç27 Mar 2023

REST ve SOAP, çevrimiçi veri aktarımı için kullanılan iki farklı yaklaşımdır. Her ikisi de verilerin web uygulamaları arasında iletilmesine izin veren uygulama programlama arayüzlerinin (API) nasıl oluşturulacağını tanımlar. SOAP ve REST’in detaylı incelemesine geçmeden önce API ve web servisin ne olduğuna ve bazı kavramların tanımlarına göz atalım.

 

Bu yazıda sıklıkla karşılaşacağımız terminolojiyi inceleyelim:

  • XML (Extensible Markup Language): Veri depolamak ve göndermek için standartlaştırılmış bir biçimdir. HTML'ye benzer şekilde, verileri açıklayıcı etiketlere sararak depolar.
  • JSON (Javascript Object Notation): Standart bir biçimde veri gönderilmesini ve depolamayı sağlaması açısından XML'ye benzer. JSON, verileri sistematik olarak depolamak için nesne tabanlı bir metodoloji kullanır.
  • HTTP (HyperText Transfer Protocol): İnternet üzerinden veri ve iletişim aktarımının yapı taşıdır.
  • Web uygulamaları: Bir bilgisayarın web tarayıcısı aracılığıyla internet üzerinden erişilen bilgisayar programlarıdır.
  • REST API: HTTP yöntemlerini kullanarak web API’leri oluşturmak için standartlaştırılmış bir mimaridir.
     

API ve web servis nedir?

Web servisler ve API çok benzer iki kavramdır, bu sebeple benzerlik ve farklılıklarını anlamak zor olabilmektedir.
 

Web servis

 İki makinenin bir ağ üzerinden birbirleriyle iletişim kurmasının bir yoludur. Bir bilgisayar üzerinden çalışan bir web sunucusu, diğer bilgisayarlardan gelen istekleri dinler. Bir ağ üzerinden başka bir bilgisayardan istek alındığında, web servisi istenen kaynakları döndürür. Bu kaynak JSON, XML, HTML formatında olabileceği gibi görüntü ve ses dosyaları da olabilir.

API (application programming interface) 

API yani uygulama programlama arayüzü, bir uygulamanın başka bir uygulamayla iletişim kurmasını sağlayan bir dizi tanım ve protokoldür. Genel olarak API’lerden bahsedildiğinde akla önce Web API’ler gelir. Her ne kadar aklımıza web api’ler gelse de API’ler iki yerel uygulamanın (C/C++ programlarındaki .h dosyası, Java programlarındaki jar dosyası) birbiriyle iletişim kurmasını sağlamak için yerel dosyalar aracılığıyla açığa çıkarılabilir. İki uygulama tek bir cihaz içinde iletişim kurduğundan bir ağ gerektirmez.
 

API’ler ve web servislerinin en önemli farklarından biri; tüm API’lere internet (ağ) üzerinden erişilemezken, web servislerine her zaman bir ağ üzerinden erişilmesi gerekmesidir.
 

Tüm web servisleri API iken tüm API’ler web servis değildir.

Kaynak

SAOP ve REST’i daha detaylı inceleyelim:

 

SOAP nedir?

SOAP (Simple Object Access Protocol) yani basit nesne erişim protokolüdür. HTTP üzerinden web servislerine erişmek için XML tabanlı bir protokoldür. Çeşitli programlama dillerinde oluşturulmuş uygulamaların birbirleriyle etkin bir şekilde iletişim kurabilmesi için bir ara dil olarak geliştirilmiştir. Web servisler, uygulamalar arasında XML verisinin alışverişi için SOAP kullanır. SOAP, hem durum bilgisi olan(stateful) hem de durum bilgisi olmayan (stateless) işlemleri destekler.

 

SOAP’ın özellikleri

  • SOAP tamamen XML tabanlı bir protokoldür, veri biçimlendirmesi XML’dir. Bu nedenle geliştiricinin anlaması kolaydır.
  • Platformdan bağımsız bir protokoldür. 
  • Açık standart bir protokoldür, böylece herkes kullanabilir.
  • XML mesajlaşma için HTTP protokolünün bir uzantısıdır.
  • SOAP mesajlaşma, mesajları bir bilgisayardan diğer bilgisayarlara yayınlamak için kullanışlıdır.
  • İstemci-sunucu (client-server) mimarisini uygulamak mümkündür. İstemci, SOAP protokol mesajını kullanarak sunucu tarafında bulunan bir uzak prosedür çağrısını çağırabilir.
  • SOAP, web servisler için veri aktarımı sağlar.
  • SOAP, web servisler ile yapılması gerekenler hakkında bilgi içeren bir zarf (envelope) göndererek çalışır.
  • Tipik bir SOAP zarfı, bir WSDL (Web Service Definition Language) yani web hizmeti tanımlama dili dosyası içeren bir header ve body içerir. Bu zarfın tamamı servis sağlayıcıya gönderilir, bu sebeple SOAP’ın daha büyük bant genişliğine ihtiyacı vardır.

 

Kaynak
 

SOAP mesajının yapısını daha detaylı inceleyelim:

Bir SOAP mesajı; öğesinde, isteğe bağlı bir

öğesi ve zorunlu bir öğesi içeren bir XML dokümanı olarak kodlanır. içerisinde bulunan öğesi, hataları bildirmek için kullanılır.
 

 

  • SOAP Envelope

her SOAP mesajında bulunan root (kök) öğedir ve isteğe bağlı bir

ile zorunlu bir öğesi olmak üzere iki alt küme içerir.
 

  • SOAP Header

SOAP envelope yapısının isteğe bağlı bir alt öğesidir ve ileti yolu boyunca SOAP düğümleri tarafından işlenecek ilgili bilgileri iletmek için kullanılır.
 

  • SOAP Body

mesajın nihai alıcısına yönelik bilgileri içeren SOAP envelope yapısının zorunlu bir alt öğesidir.
 

  • SOAP Fault

, hataları bildirmek için kullanılan SOAP gövdesinin bir alt öğesidir. SOAP fault kodları:

  • Sender: Sorun gönderenden gelen yanlış veya eksik verilerden kaynaklanmıştır.
  • Receiver: Sorun, alıcı tarafında meydana gelen bir problemden kaynaklanmıştır.
  • VersionMismatch: Düğümün (node) kullanılan SOAP sürümünü tanımadığını gösterir.
  • MustUnderstand: Düğümün mustUnderstand ile işaretlenmiş bir bloğu tanımadığını belirtir.
  • Subcodes: 3 seviyeye kadar iç içe yerleştirlebilen hata kodlarını belirtir.
  • Reason: İnsan tarafından okunabilir (açıklayıcı, anlaşılır) açıklama içerir.
     

REST nedir?

Kaynak

REST (Representational State Transfer) yani temsili durum transferi, çeşitli web servislerinin geliştirilmesinde sıklıkla kullanılan iletişim amaçlı mimari bir yaklaşımdır. Stateless (durum bilgi) bir sunucu modelidir. REST kavramı üzerinde tanımlanan web servisleri, RESTful web servisleridir. Bir istemci RESTful API üzerinden bir istekte bulunduğunda, kaynakların durumunun temsilini sunucuya aktarır. Bu bilgiler HTTP aracılığıyla JSON, HTML, XLT ve düz metin gibi çeşitli biçimlerde aktarılabilir. Ancak JSON, makineler ve insanlar tarafından kolay okunabilmesi nedeniyle en yaygın kullanılan dildir. 
 

REST’in özellikleri 

  • Daha az bant genişliği ve kaynak tükettikleri için hızlı web servisleridir. 
  • REST herhangi bir programlama dilinde yazılabilir. 
  • Bu servisler herhangi bir platformda yürütülebilir.
  • REST mimarisi üzerine kurulmuş hafif ve ölçeklenebilir bir hizmettir.
  • CRUD (Create, Read, Update, Delete) yani oluştur, oku, güncelle ve sil işlemleri için GET, POST, DELETE, PUT ve PATCH gibi HTTP fiillerini kullanır.
  • TLS (Transport layer security) yani taşıma katmanı güvenliği aracılığıyla temel iletişim şifrelemelerini destekler, bu nedenle SOAP’tan daha az güvenlidir.
  • Geliştirmek daha basittir.
  • SOAP ile karşılaştırıldığında daha az bant genişliği gerektirir.

 

Bu yazımızda çevrimiçi veri aktarımı için kullanılan iki farklı yaklaşım olan REST ve SOAP’ın detaylı özelliklerini inceledik. Özetle, REST (Representational State Transfer) yani temsili durum transferi, çeşitli web servislerinin geliştirilmesinde sıklıkla kullanılan iletişim amaçlı mimari bir yaklaşımdır. SOAP (Simple Object Access Protocol) yani basit nesne erişim protokolüdür. HTTP üzerinden web servislerine erişmek için XML tabanlı bir protokoldür.


 

Kaynaklar

Etiketler
Rest / soap
İlginizi Çekebilir
Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.