SOAP ve REST Servisleri Anlamak

SOAP ve REST Servisleri Anlamak

1156 Görüntülenme
0
0

Web servis haberleşmeyi anlamak için sırasıyla aşağıdakilerden kısaca bahsetmek gerekmektedir.

1- TCP Protokolü:

IP (Internet Protocol ) lerinden biridir. Bilgisayar ağlarında veri kaybetmeden paket taşınmasını sağlamak amaçlı yazılmış bir protokoldür.

Genel hatlarıyla 3 adımda çalışır.

Hedef ile bir bağlantı gerçekleştirilir.
Paket bu bağlantı üzerinden aktarılır.
Veri transfer edildikten sonra bağlantı sona erdirilir.
Bir çok TCP protokolü mevcuttur. HTTP, HTTPS, SMTP ve FTP gibi en popüler veri iletim protokolleri TCP protpkolü yapısı ile çalışmaktadır.

2- HTTP Protokolü

HTTP (HyperText Transfer Protocol) web sunucuları ile web browserlar arasında kullanılan ortak bir dildir. HTTP ile sadece dosyalar aktarılmadığı için aktarılan verilere HyperText (Köprü metni) ismi verilmiştir. HTTP protokolü TCP protokolü üzerine inşaa edilmiştir yani istek ve cevap şeklinde çalışan istek oldugunda bağlantı açılıp cevap dönüldükten sonra bağlantının kesildiği bir sistem akışı izlemektedir.

Web tarayıcısından gelen isteğe (request) karşılık web sunucusu bir cevap (reponse) döner. Bu response içerinde herzaman bir Header ve çoğu zaman da bir Body ile dönüş yapar. 80 portunu kullanmaktadır.

HTTP İstek komut yapısı:

1- İstek metodu (Request Method) : GET, POST, HEAD, PUT, DELETE ve TRACE

2- URL : web sunucusundan talep edilen sayfa / servis adresi

3- Protocol : HTTP 1.1, HTTP 1.2

4- Host bilgisi

İsteği yapan taraf genelde Header alanına istek yada istemci ile ilgili bilgiler göndermek isteyebilir. Bunu da Header alanında key,value şeklide gönderebilir.

HTTP Cevap komut yapısı:

1- Cevabın protokol bilgisini içerir: HTTP 1.1 ve HTTP 1.2 gibi

2- Statü bilgisi dönülür (1xx, 2xx, 3xx vb ) Detaylı bilgiye buradan erişebilirsiniz.

3- Response içerindeki birçok sunucu hakkındaki bilgilere erişebilirsiniz

SOAP (Simple Object Access Protocol) Web Servis:

SOAP (Simple Object Access Protocol) tipi servisler TCP protokolü üzerinden haberleşmeyi sağlayan, XML tabanlı mesajlaşma içeren bir servis protokolüdür.

SOAP servisler genel olarak tanımlamak ister isek, web üzerinden fonksiyonları kullanmak için geliştirilmiş XML tabanlı kurallar topluluğudur.

Temel olarak SOAP mesaj üç şekilde oluşturulabilir.

1- Method hazırlama

2- Cevap Mesajı

3- Hata Mesajı

Bir SOAP servisin içeriği hakkında bilgilerin ve istenen standartların sunulduğu WSDL (Web Service Definition Language) dosyasından okunabilmektedir.

Bir SOAP mesajının yapısı aşağıdaki şekilde olmaktadır.

1- Envelope : Tüm SOAP servis istek ve cevaplarının bilgilerini içerir. SOAP servisinin XML root elemanı olmak zorundadır. İçerinde header ve body olma durumundadır.

2- Header: Her zaman olmasada meta-data gibi diyebileceğimiz bilgileri iletmeye yarar.

3- Body : Her zaman SOAP mesajlaşmada bulunur. Yapılan istekte mesaj adı ve parametreleri XML formatında iletilir ve sunucudan gelen cevapda Body kısmında XML olarak geri döndürülür.

4- Fault : Yapılan istek sonucu dönülen hata ve durumunu içerir. Fault tagi ile WSDL içerinde bilgisi verilmektedir.

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
  <soap:Fault>
  ...
  </soap:Fault>
</soap:Body>
</soap:Envelope>

SOAP Haberleşmenin Önemi:

SOAP Platform bağımsız XML haberleşmeyi sağlar.
Bir çok veri paylaşım protokolleri kullanılabilir. HTTP , SMTP , FTP vb.

SOAP Web Servis Nasıl Kullanılır?

SOAP servisin kullandığı metodlar, parametre , response ve hata mesajlarına ulaşmamızı sağlayan WDSL dokumanı bu konuda bize yardımcı olmaktadır.

1- SOAP Service Object Generation

Karşı tarafın sağlamış olduğu SOAP servisinin WSDL dokumanı kullanılarak SOAP servisi generate edilir.

Bunun için Java JRE kütüphanesi ile gelen “wsimport” komutundan faydalanabiliriz. wsimport komutu hakkında daha detaylı bilgiye buradan erişebilirsiniz.

Örnek olarak Weather SOAP servisinin wsdl adresi üzerinden generation işlemini yapalım.

wsimport -keep -s src -p com.example http://www.webservicex.net/globalweather.asmx?wsdl
bu komutu çalıştırdığımızda servisimizin classlarına ve src içerinde de Java classlarına istediğimiz paket yapısı ile erişmiş oluyoruz.

2- Client oluşturma

Wsdl içerinde client nesnesi hakkında bilgi bulunmaktadı. Bir factory class içerinde servis nesnesini alabilirsiniz.

REST (Representational State Transfer) Web Servis:

Rest servisler, istemci ve sunucu arasında veri alışverişinde günümüzde kullanılan en basit yöntem denilebilir. HTTP protokolünü kullanan bir mesajlaşma yöntemidir.

Temelde bir web servisde yapılabilecek herşeyi yapabilme özelliğine sahiptir. İstemci tarafında servisi çağırılması için bir nesne yada client’ a ihtiyaç bulunmamaktadır, bu da zaten en güzel özelliklerinden biridir.

REST mimarisinde işlemler resource kavramıyla yapılır, ve resourcelar URI ile tanımlanır. REST servisler URI ile ilgili metoda HTTP prorokol üzerinden istek yapar SOAP gibi bir WDSL gerekmez. REST servisin SOAP dan bir farkı da JSON, XML ve hatta Text data iletilebilmesi , ancak SOAP servisler de XML mesajlaşma yapılabilmektedir.

REST servisler yardımı ile CRUDişlemleri yapılabilmektedir. Bunun için de GET, POST, PUT, DELETE HTTP metodları kullanılmaktadır.

CRUD işlemleri düşünürsek HTTP metodların genel kullanımı aşağıdaki şekildedir :

GET               : Select
POST             : Insert
PUT, PATCH  : Update
DELETE         : Delete

Günümüz uygulamaları performans, hız ve güvenlik gibi gerekçelerden iki seçeneği de kullanmaktadır. Ancak şunu belirtmek gerekir entegrasyon , yazma ve kullanma adına REST servisleri kullanımı daha yaygın bulunmaktadır.

Performans bakımından daha hızlı çalışan bir uygulama istiyorsanız REST servis tabanlı bir mimari uygulayabilirsiniz.

Tuğçe Konuklar

Kaynak: https://medium.com/@TKonuklar/

Yorum Yap