
5 Business Tasks You Didn’t Know You Could Automate
From scheduling to data entry, here’s how Bima can help you reclaim hours every week.

Furkan Deveci
21 Nis 2025
Simple Object Access Protocol
SOAP, sistemler ve uygulamalar arasında veri iletmek için kullanılan bir protokoldür. API mimari tasarım stillerinden biri olarak karşımıza çıkar. SOAP’a ve özelliklerine değinmeden önce nasıl ortaya çıktığına ve neden ihtiyacımız olduğunu anlamaya çalışalım.
İşaretleme Dilleri (Markup Language)
Bir belge içindeki metinlerin yapısını, sunumunu ve amacını tanımlamak için kullanılan bir yapıdır. Örneğin HTML sayesinde web sayfaları geliştiriyoruz. Verinin istediğimiz formatta gösterilmesini sağlıyoruz. HTML, web’in ilk zamanlarında ortaya çıktı ve web geliştikçe XML yapıları ortaya çıktı. XML, veri depolama ve veri taşıma için görevli bir işaretleme dilidir. HTML den farklı olarak veriyi gösterme ve sunma amacı taşımaz. XML’ de kendi etiketleriniz oluşturarak verilerimizi oluşturabiliriz. Bu XML yapılarında tanımladığımız verileri karşıya iletmek için bir web servisleri fikrine ihtiyacımız var. İşte SOAP bu noktada doğuyor.
Örnek bir XML
SOAP Web Servisleri - SOAP API
SOAP, 1999 yılında XML ile daha iyi bir veri iletişimi yapmak için ortaya çıkmıştır. API’leri sunmaya yönelik diğer yaklaşımlar gibi, SOAP da aktarım için HTTP kullanır, ancak mesajları iletmek için basit posta aktarım protokolü (SMTP), aktarım kontrol protokolü (TCP) ve kullanıcı veri protokolü (UDP) de kullanabilir. Bu, veri içerik ve medya aktarımında daha fazla esneklik sağlar. SOAP’un çok katı uygulama kuralları olmasına rağmen, genişletilebilirliği ile de bilinir. Mimari yapıları REST kadar HTTP ile tam uyumlu değildir. REST daha çok bir stil iken, SOAP size istek ve yanıtın yapısı, mesaj içeriği ve nasıl kodlanacağı konusunda çok daha fazla rehberlik sağlar. SOAP kullanmak doğrudan sadece iletilen mesaja odaklanır. REST ise bunları bir resource olarak tanımlamaya, stilize etmeye odaklanır.
SOAP API ve REST API karşılaştırılması
SOAP dil, aktarım ve hatta platformdan bağımsızdır, oysa REST, HTTP kullanımını gerektirir.
SOAP çok güvenlidir, bu da onu finansal hizmetler ve çevrimiçi bankacılık uygulamaları gibi hassas verileri işleyen sistemler için mükemmel hale getirir.
SOAP, doğrudan noktadan noktaya iletişime bağlı olmak yerine, dağıtılmış kurumsal ortamlarda iyi çalışır.
SOAP, yerleşik hata işleme özelliklerine sahiptir, bu da bir istek başarısız olduğunda ne olduğunu anlamayı kolaylaştırır.
SOAP, API çağrılarının önbelleğe alınmasını desteklemez.
SOAP, REST’ten çok daha karmaşıktır ve bu da performans üzerinde olumsuz etkilere neden olabilir.
SOAP, REST’ten çok daha az uyarlanabilir.
SOAP, genellikle REST’ten daha yavaştır.
SOAP Web Servislerini Kodlamak
Bu servileri geliştirmede iki yaklaşım vardır.
top-down (contract-first): İlk olarak WSDL oluştururuz. WSDL, web servisimizi tanıtır. Request ve response yapılarımızın kurallarını belirleyen bir interface gibi düşünebilirsiniz. XML yapısı ile yazılır.
1-WSDL oluşturalım
2-Bu yaklaşımda WSDL den sonra gerekli java sınıflar üretilir.
bottom-up (contract-last): Bu yaklaşımda ise ilk önce java sınıfları geliştirilir. Daha sonra WSDL belgesi üretilir.
WSDL içindeki yapıları
Bölüm | Açıklama |
|---|---|
<types> | XML şema (XSD) tanımları - Kullanılan veri tiplerini ve mesaj formatlarını belirtir. |
<message> | İletişimde kullanılacak mesajların yapısını tanımlar (Request/Response/Fault) |
<portType> | Servisin sunduğu operasyonları (fonksyionları) ve mesaj akışını belirtir (SOAP operasyonlarının mantıksal tanımı) |
<binding> | portType'daki operasyonların fiziksel uygulama detaylarını (SOAP/HTTP gibi) tanımlar |
<service> | Servisin erişim noktasını (endpoint URL) ve bağlama bilgilerini içerir |
SOAP API kodladıktan sonra request ve response yapılar
Yukarıda WSDL de bulunan create user metodu için aşağıdaki request gönderilmeli:
Bu request e cevap olarak ürettiğimiz response:
SOAP aşağıdaki ögeler ile geliştirilir.
Envelope: SOAP mesajının başlangıcını ve sonunu tanımlayan kök öğe.
Header: Kimlik doğrulama veya işlem ayrıntıları gibi meta veriler için isteğe bağlı bir bölüm
Body: İletilen gerçek mesajı veya verileri içerir.
Fault: Hata ve durum bilgileri için isteğe bağlı bir bölüm.



