SOAP Nedir?

Yazıda SOAP nedir ile SOAP anlatılarak SOAP yapısıyla ilgili bilgilere yer verilmiştir.

SOAP Nedir?

SOAP Simple Object Access Protocol (Basit Nesne Erişim Protokolü) kısaltmasıdır.

Web Servis Nedir? yazısında web servis yapısıyla ilgili bilgi verip Web Servisleri Nedir? yazısında web servis oluşturmak için kullanılan web servis çeşitlerini vermiştim.

SOAP, web servis oluşturmak için kullanılan web servis yöntemlerinden birisidir.

SOAP programlama dilinden bağımsız olarak web servis oluşturmak için kullanılan bir standarttır.

SOAP yapısı temel olarak aşağıdaki gibi 4 bölümden oluşur.

<?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>

Envelope –  SOAP yapısının en üst (kök) elemanıdır ve zorunludur.

Header – Yetkilendirme ve SOAP ayarlarının yapılması için kullanılır. HTML’de bulunan head etiketine benzetebiliriz.

Body – SOAP yapısındaki en önemli bölümdür. Bu bölümde metotlarla ilgili bilgi veya metodun sonucuyla ilgili bilgi yer alır.

Fault – Herhangi bir hata oluşursa hata ile ilgili bilgiler (hata kodu, hata açıklaması) yer alır.

Aşağıda TC kimlik doğrulaması için kullanılan SOAP yapısı yer almaktadır.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <TCKimlikNoDogrula xmlns="http://tckimlik.nvi.gov.tr/WS">
      <TCKimlikNo>long</TCKimlikNo>
      <Ad>string</Ad>
      <Soyad>string</Soyad>
      <DogumYili>int</DogumYili>
    </TCKimlikNoDogrula>
  </soap:Body>
</soap:Envelope>

Aşağıda TC kimlik doğrulaması için kullanılan SOAP yapısının verdiği cevap (response) yapısı yer almaktadır.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <TCKimlikNoDogrulaResponse xmlns="http://tckimlik.nvi.gov.tr/WS">
      <TCKimlikNoDogrulaResult>boolean</TCKimlikNoDogrulaResult>
    </TCKimlikNoDogrulaResponse>
  </soap:Body>
</soap:Envelope>

Örnek dikkatle incelendiğinde Body içerisinde TCKimlikNoDogrula metodu ve parametreleri (TCKimlikNo, Ad vb.) yer almaktadır.

Cevap yapısında benzer şekilde TCKimlikNoDogrula metodunun cevabı TCKimlikNoDogrulaResult etiketiyle belirtilmiştir.

SOAP içindeki bu bölümler WSDL ile tanımlanır.

SOAP web servisi hazırlamak için SOAPUI, Java-WS, WSDL generator vb. araçların kullanılması faydalı olacaktır.

Web Servis Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!