Terakhir saya temui layanan berbasis SOAP adalah selama magang di sebuah perusahaan keuangan pada tahun 2013. Itulah saat ketika saya memulai karir saya di bidang TI. Saya ingat memiliki beberapa bahan studi tentang SOAP di salah satu kursus teknik saya. Di luar itu, saya belum banyak menggunakan sabun selama karier saya.
Saya menanyakan hal ini karena pertanyaan "Perbedaan antara SOAP dan REST" muncul dalam salah satu wawancara saya baru-baru ini. Dari apa yang saya tahu (dan apa yang saya temukan di Google) SOAP adalah protokol dengan kopling ketat antara klien dan server untuk pertukaran informasi yang terkait erat dengan logika bisnis. Sedangkan REST adalah arsitektur stateless yang lebih fleksibel untuk transfer data.
Dapatkah seseorang tolong perbaiki saya jika saya salah tentang perbedaan antara SOAP dan REST ini? Juga, apa arti SOAP saat ini? Apakah orang masih mengembangkan API berbasis SOAP baru, atau sebagian besar adalah warisan sekarang?
sumber
Jawaban:
REST memang gaya arsitektur. SOAP adalah protokol data. Perbedaan itu penting; Anda tidak dapat membandingkannya secara langsung.
Tujuan utama REST adalah untuk mewakili sumber daya di Internet, dan untuk menyediakan mekanisme untuk menemukannya. Sebaliknya, SOAP digunakan untuk mengkomunikasikan data terstruktur antar komputer, dan hanya itu yang dilakukannya.
Perhatikan bahwa Anda sebenarnya tidak perlu REST untuk membuat hubungan klien / server antara dua komputer di Internet. Yang Anda butuhkan adalah mekanisme yang mentransfer JSON atau XML, dan Anda bahkan tidak memerlukannya jika Anda bersedia tidak kompatibel dengan orang lain.
Namun demikian, SOAP telah tidak disukai untuk API baru yang menghadap publik, meskipun masih umum digunakan untuk aplikasi B2B karena Anda dapat mendefinisikan "kontrak data" dengannya. Layanan web JSON memiliki kelebihan yaitu agak ringan dan fleksibel, dan karena Javascript mengenali JSON secara asli, itu adalah pilihan alami untuk browser.
Tapi tidak ada yang berhubungan dengan REST, sungguh.
Bacaan Lebih Lanjut
Apakah SISA lebih baik daripada SABUN? (artikel bagus, meskipun salah menyebut SISA protokol).
Model Kematangan Richardson
sumber
REST jauh lebih terbatas daripada SOAP, yang merupakan kekuatan dan alasan popularitasnya.
Dalam SOAP, set operasi diizinkan dan set tipe data yang diizinkan pada dasarnya tidak terbatas. SOAP adalah protokol prosedur jarak jauh, yang Anda gunakan untuk mengekspos API lokal di seluruh jaringan tanpa kehilangan kesetiaan. Ini membuat SOAP populer di lingkungan perusahaan di mana sistem transaksional yang kompleks diperlukan untuk berinteraksi di seluruh jaringan tanpa kehilangan kesetiaan di sepanjang jalan. Kekayaan dalam kemampuan ini juga merupakan kejatuhan SOAP, karena membuat SOAP API sangat sulit untuk dipahami dan digunakan sehingga diperlukan tooling otomatis dalam bentuk WSDL dan pustaka klien SOAP untuk memahami sesuatu. Terlebih lagi, mengekspos kekayaan penuh dari sistem yang mendasarinya tidak menarik di API publik, di mana Anda ingin memberikan abstraksi yang memungkinkan Anda mengembangkan sistem yang mendasarinya tanpa harus merusak atau versi API Anda.
REST + JSON mendapatkan popularitas secara khusus karena kesederhanaannya. Ini mendefinisikan serangkaian operasi terbatas dengan serangkaian tipe data terbatas, mengharuskan desainer API untuk hati-hati merancang abstraksi yang sesuai dengan kosa kata terbatas ini dan benar-benar berpikir melalui pemetaan domain bisnis ke sumber daya REST. API REST mudah dimengerti dan mudah digunakan tanpa alat khusus. Untuk API yang menghadap publik di mana pengguna API Anda mungkin memiliki semua tingkat keterampilan dan pengetahuan, inilah yang Anda inginkan, itulah sebabnya mengapa semua API yang Anda lihat di web telah beralih ke REST. SOAP diturunkan ke situasi perusahaan di mana masih ada keinginan dan kebutuhan untuk berbagi API yang kompleks antara sistem. Namun,
Pada dasarnya, apa yang orang sadari adalah bahwa sekumpulan kendala yang harus Anda terapkan pada desain API Anda untuk membuat API sederhana dan abstrak sehingga dapat dipelihara dan mudah digunakan adalah sekumpulan kendala yang diperkenalkan REST, yang secara efektif menetralkan SOAP. manfaat hanya menyisakan kerugian bagi Anda. Anda bisa membangun API yang disederhanakan dengan SOAP, tetapi itu tidak akan pernah semudah digunakan sebagai REST, jadi dalam praktiknya semua orang hanya memilih REST.
sumber
Anda tidak dapat membandingkan REST dan SABUN. REST adalah gaya arsitektur sedangkan SOAP adalah protokol.
Sayangnya, REST menjadi bahasa sehari-hari yang diucapkan sebagai sinonim untuk layanan HTTP RESTful, yang berarti realisasi arsitektur gaya REST dengan HTTP sebagai protokol (aplikasi).
REST didasarkan pada prinsip-prinsip berikut (kendala dan elemen) (dalam kurung realisasi dalam HTTP tenang) [1] .
Di sisi lain banyak orang bermaksud mengatakan SOAP layanan web berdasarkan WSDL dan SOAP yang merupakan bagian dari arsitektur layanan web W3C [2] .
SOAP adalah standar W3C dan digunakan sebagai format pertukaran informasi dalam layanan web W3C. Layanan web itu - terutama selama hype SOA (arsitektur berorientasi layanan) sekitar 2008 (+ - 3 tahun) - dan (sayangnya) masih diimplementasikan sebagian besar dalam aplikasi perusahaan.
Ini memiliki beberapa alasan. Saat itu HTTP tenang tidak dikenal, dan itu disalahpahami. Sayangnya, masih disalahpahami melihat jawaban lain
Selain itu, SOAP (dan WSDL) adalah bagian dari tumpukan protokol layanan web W3C yang bahkan memberikan lebih banyak standar untuk mengimplementasikan Layanan Web.
Jadi ya, masih ada dan akan ada juga dalam sistem masa depan di luar sana yang menggunakan SOAP (setidaknya dalam sistem perusahaan, kebanyakan di belakang pintu). Tetapi mayoritas berusaha melakukan semacam "REST" saat ini.
Mengatakan REST adalah arsitektur stateless yang lebih fleksibel untuk transfer data bukanlah penjelasan yang baik. Cukup diucapkan REST adalah gaya arsitektur dengan batasan dan elemen tertentu. Sedangkan SOAP adalah protokol pertukaran informasi.
Seperti yang sudah saya tulis, Anda tidak dapat membandingkannya. Tetapi Anda dapat membandingkan Layanan Web HTTP RESTful dengan Layanan Web SOAP / WSDL.
sumber