SOAP ( Simple Object Access Protocol ) dan REST ( Representation State Transfer ) keduanya indah di jalan mereka. Jadi saya tidak membandingkannya. Sebagai gantinya, saya mencoba untuk menggambarkan gambar, ketika saya lebih suka menggunakan REST dan ketika SOAP.
Apa itu payload?
Ketika data dikirim melalui Internet, setiap unit yang dikirim mencakup informasi header dan data aktual yang dikirim. Header mengidentifikasi sumber dan tujuan paket, sementara data aktual disebut sebagai muatan . Secara umum, payload adalah data yang dibawa atas nama aplikasi dan data yang diterima oleh sistem tujuan.
Sekarang, misalnya, saya harus mengirim Telegram dan kita semua tahu bahwa biaya telegram akan tergantung pada beberapa kata.
Jadi, katakan di antara saya di bawah ini disebutkan dua pesan ini, mana yang lebih murah untuk dikirim?
<name>Arin</name>
atau
"name": "Arin"
Saya tahu jawaban Anda akan menjadi yang kedua meskipun keduanya mewakili pesan yang sama, yang kedua lebih murah mengenai biaya.
Jadi saya mencoba mengatakan bahwa, mengirim data melalui jaringan dalam format JSON lebih murah daripada mengirimkannya dalam format XML mengenai payload .
Inilah manfaat atau kelebihan REST pertama dari SOAP . SOAP hanya mendukung XML, tetapi REST mendukung format yang berbeda seperti teks, JSON, XML, dll. Dan kita sudah tahu, jika kita menggunakan Json maka pasti kita akan berada di tempat yang lebih baik mengenai muatan.
Sekarang, SOAP mendukung hanya XML, tetapi juga memiliki kelebihannya.
Betulkah! Bagaimana?
SOAP bergantung pada XML dalam tiga cara Amplop - yang mendefinisikan apa yang ada dalam pesan dan bagaimana memprosesnya.
Seperangkat aturan penyandian untuk tipe data, dan akhirnya tata letak panggilan prosedur dan tanggapan berkumpul.
Amplop ini dikirim melalui transportasi (HTTP / HTTPS), dan RPC (Remote Procedure Call) dijalankan, dan amplop dikembalikan dengan informasi dalam dokumen berformat XML.
Poin penting adalah bahwa salah satu keunggulan SOAP adalah penggunaan transportasi "generik" tetapi REST menggunakan HTTP / HTTPS . SOAP dapat menggunakan hampir semua transportasi untuk mengirim permintaan tetapi REST tidak bisa. Jadi di sini kita mendapat keuntungan menggunakan SABUN.
Seperti yang telah saya sebutkan di paragraf di atas "REST using HTTP / HTTPS" , jadi masuklah sedikit lebih dalam pada kata-kata ini.
Ketika kita berbicara tentang REST melalui HTTP, semua langkah-langkah keamanan yang diterapkan HTTP diwarisi, dan ini dikenal sebagai keamanan tingkat transportasi dan mengamankan pesan hanya saat berada di dalam kabel tetapi setelah Anda mengirimnya di sisi lain Anda tidak tahu berapa banyak tahapan yang harus dilalui sebelum mencapai titik sebenarnya di mana data akan diproses. Dan tentu saja, semua tahapan itu bisa menggunakan sesuatu yang berbeda dari HTTP. Jadi Istirahat tidak sepenuhnya aman, kan?
Tetapi SOAP mendukung SSL seperti REST dan juga mendukung WS-Security yang menambahkan beberapa fitur keamanan perusahaan. WS-Security menawarkan perlindungan dari penciptaan pesan untuk konsumsi itu . Jadi untuk keamanan tingkat transportasi, celah apa pun yang kami temukan dapat dicegah menggunakan WS-Security.
Selain itu, karena REST dibatasi oleh protokol HTTP- nya, maka dukungan transaksinya tidak sesuai dengan ACID dan tidak dapat memberikan komitmen dua fase di seluruh sumber daya transnasional yang didistribusikan.
Tetapi SOAP memiliki dukungan komprehensif untuk manajemen transaksi berbasis ACID untuk transaksi jangka pendek dan manajemen transaksi berbasis kompensasi untuk transaksi jangka panjang. Ini juga mendukung komitmen dua fase di seluruh sumber daya yang didistribusikan .
Saya tidak menarik kesimpulan apa pun, tetapi saya akan lebih memilih layanan web berbasis SOAP sementara keamanan, transaksi, dll. Adalah masalah utama.
Berikut adalah "Tutorial Java EE 6" di mana mereka mengatakan bahwa desain RESTful mungkin sesuai ketika kondisi berikut dipenuhi . Silahkan lihat.
Semoga Anda menikmati membaca jawaban saya.