# SOAP (Simple Object Access Protocol)

Adres: https://softwaredictionary.org/tr/terimler/soap
Kategori: Backend ve API'ler
Son güncelleme: 2026-09-30
Okunuşu: sop

Kısaca: SOAP, her isteği ve yanıtı genellikle resmi bir WSDL sözleşmesiyle tanımlanan katı bir zarfa saran, XML tabanlı bir web servisi mesajlaşma protokolüdür.

## SOAP nedir?

SOAP, uygulamalar arasında çoğunlukla HTTP üzerinden yapılandırılmış mesajlar alışverişi için kullanılan bir protokoldür. Her mesaj, güvenlik token'ları gibi meta veriler için isteğe bağlı bir `Header` ve asıl istek ya da yanıtı tutan bir `Body` içeren bir `Envelope` taşıyan XML belgesidir. 2000'lerin başında W3C tarafından standartlaştırıldı ve REST ile JSON yeni API'lerin çoğunu devralmadan önce kurumsal web servislerinin belkemiği oldu.

Bir SOAP servisi genellikle bir WSDL (Web Services Description Language) dosyasıyla tanımlanır; bu, XML Schema ile tanımlanmış işlemleri, girdi ve çıktılarını ve veri tiplerini listeleyen bir XML sözleşmesidir. Araçlar WSDL'yi okuyup istemci kodu üretir; böylece servisi çağırmak yerel bir metodu çağırmak gibi hissettirir ve bu da SOAP'u bir RPC biçimi yapar. WS-* standartları olarak bilinen bir uzantı ailesi, mesajları imzalamak ve şifrelemek için WS-Security, garantili teslimat için WS-ReliableMessaging gibi özellikler ekler; hatalar ise standart bir `Fault` öğesi içinde döner.

SOAP, gerekli bir formu içeren resmi bir zarfla gönderilen resmi bir taahhütlü mektup gibidir: hızlı bir kısa mesajdan daha ağır ve yavaş, ancak kesin, doğrulanabilir ve yanlış okunması zordur. Bankacılıkta, sigortacılıkta, telekomünikasyonda, sağlıkta, kamuda ve ödeme sistemlerinde, ayrıca katı sözleşmelere ve yerleşik güvenlik standartlarına değer verilen eski kurumsal yazılımlarla entegrasyonlarda hâlâ yaygındır.

Olağan karşılaştırma SOAP ile REST arasındadır. SOAP, sabit bir XML mesaj biçimi ve resmi bir sözleşmesi olan bir protokoldür ve genellikle her çağrıyı tek bir endpoint'e `POST` olarak gönderir. REST ise kaynaklar için URL'leri, standart HTTP metotlarını ve durum kodlarını ve çoğunlukla JSON olmak üzere herhangi bir veri biçimini kullanan bir mimari stildir. REST daha hafiftir ve tarayıcılardan çağrılması daha kolaydır; SOAP ise daha katı tiplendirme ve standartlaştırılmış mesaj düzeyinde güvenlik sunar. Özgün adına rağmen SOAP özellikle basit ya da nesne tabanlı değildir ve 1.2 sürümünden beri ad resmi olarak artık bir kısaltma sayılmaz.

## Önemli noktalar

- SOAP mesajları; bir zarf, isteğe bağlı bir başlık ve bir gövde içeren XML belgeleridir.
- Bir WSDL dosyası, servisin işlemlerini ve veri tiplerini resmi olarak tanımlar.
- WS-* standartları mesaj düzeyinde güvenlik ve güvenilir teslimat ekler.
- SOAP bankacılıkta, kamuda, telekomünikasyonda ve kurumsal entegrasyonlarda hâlâ yaygındır.
- SOAP katı bir protokoldür; REST ise genellikle JSON kullanan daha hafif bir mimari stildir.

## Örnek: Bir SOAP 1.2 istek mesajı

```xml
<!-- Usually sent with HTTP POST to a single service URL -->
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
               xmlns:acc="http://example.com/accounts">
  <soap:Header>
    <!-- Metadata such as authentication tokens goes here -->
  </soap:Header>
  <soap:Body>
    <acc:GetBalance>
      <acc:AccountId>12345</acc:AccountId>
    </acc:GetBalance>
  </soap:Body>
</soap:Envelope>
```

## Sık sorulan sorular

**SOAP ile REST arasındaki fark nedir?**

SOAP, her zaman XML zarfları ve genellikle bir WSDL sözleşmesi kullanan resmi bir protokoldür. REST ise kaynak URL'leri ve standart HTTP metotları üzerine kurulu, tipik olarak JSON alışverişi yapan bir mimari stildir; bu da çoğu web API'si için onu daha basit ve hafif yapar.

**SOAP hâlâ kullanılıyor mu?**

Evet. Birçok banka, ödeme ağı, kamu kurumu ve büyük kurumsal sistem SOAP servislerini hâlâ çalıştırıyor ve bunlara bağımlı. Ancak yeni herkese açık API'lerin çoğu REST, GraphQL veya gRPC kullanıyor.

**WSDL dosyası nedir?**

WSDL (Web Services Description Language) dosyası, bir SOAP servisini tanımlayan XML belgesidir: işlemlerini, mesaj biçimlerini, veri tiplerini ve ağ adresini. Araçlar onu istemci kodunu otomatik üretmek için kullanır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
