SOAP
SOAP adalah protokol pesan XML untuk pertukaran data antarsistem, distandarkan W3C pada SOAP 1.2 (Recommendation). Nama historisnya "Simple Object Access Protocol"; sejak SOAP 1.2 W3C tidak lagi memperlakukan SOAP sebagai akronim yang diperluas.
Struktur pesan
Pesan SOAP adalah envelope XML dengan dua bagian: Header opsional berisi blok fitur seperti routing atau metadata transaksi, dan Body wajib berisi payload atau elemen Fault yang membakukan laporan kesalahan. SOAP 1.2 memindahkan aturan encoding data keluar dari spesifikasi inti, sehingga serialisasi payload tidak lagi diwajibkan oleh inti.
Transport dan kontrak
SOAP tidak terikat satu protokol transport. Binding HTTP yang paling umum mengirim pesan lewat POST, dan binding lain seperti SMTP juga terdefinisi. Kontrak layanan dideskripsikan dengan WSDL (W3C Recommendation versi 2.0, praktik umum masih WSDL 1.1) yang memuat operasi, tipe pesan berbasis XML Schema, dan binding. Ekstensi WS-* seperti WS-Security menambahkan keamanan pesan di luar transport. HTTPS protects transit, not application logic tetap relevan karena WS-Security bekerja pada lapisan pesan.
Posisi dibanding gaya lain
Kontrak formal dan tooling stub generator membedakan SOAP dari REST yang mengandalkan semantik HTTP dan representasi ringan. Sebagai gambaran, Richardson Maturity Model menempatkan web service SOAP pada Level 0: satu URI dengan POST untuk semua operasi, sebagaimana dicatat pada evidence addendum Backend Development. SOAP tetap banyak dipakai pada integrasi enterprise dan sistem legacy. OWASP Security Risks mencatat SOAP dan XML termasuk permukaan uji keamanan API.
APIs menempatkan SOAP sebagai salah satu bentuk HTTP API berformat XML, bersebelahan dengan JSON APIs pada lapisan representasi.
Sumber
- SOAP Version 1.2 Part 1: Messaging Framework: envelope, Header, Body, Fault, binding.
- SOAP Version 1.2 Part 0: Primer: penjelasan pengantar dan status nama SOAP.
- WSDL 2.0 Core Language: deskripsi kontrak layanan.