Menghadiri demo yang menarik pada REST hari ini, bagaimanapun, saya tidak dapat memikirkan satu alasan (tidak ada satu pun yang disajikan) mengapa REST bagaimanapun juga lebih baik atau lebih sederhana untuk digunakan dan diimplementasikan daripada tumpukan Layanan berbasis SOAP.
Apa beberapa alasan Mengapa orang di "dunia nyata" menggunakan REST alih-alih Layanan berbasis SOAP?
web-services
rest
AngryHacker
sumber
sumber
Jawaban:
Lebih sedikit overhead (tidak ada amplop SOAP untuk membungkus setiap panggilan)
Duplikasi lebih sedikit (HTTP sudah mewakili operasi seperti DELETE, PUT, GET, dll. Yang harus dinyatakan dalam amplop SOAP).
Lebih terstandarisasi - Operasi HTTP dipahami dengan baik dan beroperasi secara konsisten. Beberapa implementasi SOAP bisa menjadi rewel.
Lebih dapat dibaca dan diuji manusia (sulit untuk menguji SOAP hanya dengan browser).
Tidak perlu menggunakan XML (yah Anda juga tidak perlu menggunakan SOAP, tapi itu tidak masuk akal karena Anda sudah melakukan penguraian amplop).
Perpustakaan telah membuat SOAP (semacam) mudah. Tetapi Anda mengambil banyak redundansi di bawahnya seperti yang telah saya catat. ya dalam teori, SOAP dapat digunakan untuk transportasi lain agar tidak naik ke atas lapisan melakukan hal yang sama, tetapi pada kenyataannya hampir semua pekerjaan SOAP yang pernah Anda lakukan adalah melalui HTTP.
sumber
Layanan RESTful jauh lebih mudah untuk dikonsumsi daripada layanan berbasis SOAP . Alasan untuk ini adalah bahwa REST didasarkan pada permintaan HTTP normal yang memungkinkan niat untuk disimpulkan dari jenis permintaan yang dibuat (GET = retrive, POST = tulis, DELETE = hapus, dll ...) dan sepenuhnya tanpa kewarganegaraan. Di sisi lain Anda bisa berpendapat bahwa itu kurang fleksibel karena tidak jauh dengan konsep amplop pesan yang berisi konteks permintaan.
Dalam pengalaman saya, SOAP lebih disukai untuk layanan dalam perusahaan dan REST lebih disukai untuk layanan yang diekspos sebagai API publik.
Dengan alat-alat seperti WCF dalam kerangka NET. Sangat sepele untuk mengimplementasikan layanan sebagai REST atau SOAP.
Beberapa bacaan yang relevan:
sumber
Saya akan berasumsi bahwa ketika Anda mengatakan "layanan web" yang Anda maksud adalah SOAP dan standar WS- *. (Kalau tidak, saya bisa berpendapat bahwa layanan REST adalah "layanan web".)
Argumen kanonik adalah bahwa layanan REST lebih cocok dengan desain web - yaitu, desain HTTP dan infrastruktur terkait. Dengan demikian, menggunakan layanan REST akan lebih kompatibel dengan alat dan teknik web yang ada.
Tentu saja, begitu Anda menelusuri spesifik, Anda mengetahui bahwa kedua pendekatan memiliki kekuatan dalam skenario yang berbeda. Apakah itu spesifik yang Anda minati?
sumber
Overhead tidak begitu penting sebagai arsitektur yang baik.
REST bukan protokol, melainkan arsitektur yang mendorong desain skalabel yang baik. Ini sering dipilih karena terlalu banyak kebebasan dalam RPC dapat dengan mudah menyebabkan desain yang buruk.
Alasan lainnya adalah biaya protokol RESTful yang dapat diprediksi melalui HTTP karena dapat meningkatkan teknologi yang ada (terutama proxy). Biaya awal RPC cukup rendah tetapi cenderung meningkat secara signifikan dengan intensifikasi beban.
sumber
REST adalah implementasi-agnostik dan jauh lebih transparan, dan ini membuatnya bagus untuk API publik, terutama untuk situs web besar seperti Flickr, Amazon atau Digg yang menggunakan API mereka sebagai alat pemasaran dan benar-benar ingin orang menggunakan data mereka. Mereka tidak ingin memegang 1000 pengembang pemula yang mencoba men-debug bahasa scripting mereka dari perpustakaan SOAP buggy pilihan.
Versus SOAP dan WSDL, yang lebih baik untuk aplikasi internal, di mana Anda memiliki pustaka drop-in dan orang-orang terkenal yang tahu di kedua ujungnya. (Dan Anda mungkin tidak perlu peduli tentang hal-hal seperti load-balancing skala Internet, caching HTTP dll.) Kemudian Anda mendapatkan API yang didokumentasikan sendiri, pertahankan jenis, dll. Dengan nol kerja.
sumber
Harus membaca disertasi Roy Fielding yang paling bagus tentang topik ini. Dia membuat kasus yang sangat baik dan pasti JAUH dari waktunya ketika dia menulisnya (2000).
sumber
Blog Steve Vinoski dan artikel - artikel terbarunya pasti patut dibaca. Dia adalah mantan guru CORBA, yang mungkin menulis buku terbaik tentang masalah ini dengan Michi Henning, "Advanced CORBA® Programming with C ++" . Namun, sejak itu ia telah melihat kesalahan cara klien / server, dan sekarang bersumpah dengan REST.
sumber
REST memungkinkan operasi non-mutasi Anda (yang umumnya menggunakan kata kerja GET) di- cache . Yaitu, di-cache oleh klien dan / atau di-cache oleh proxy. Ini bisa menjadi kemenangan besar!
sumber
REST pada dasarnya hanyalah cara untuk mengimplementasikan layanan web. Ini hanya cara untuk menggunakan HTTP dengan benar untuk menanyakan layanan web yang Anda coba tekan.
http://www.xfront.com/REST-Web-Services.html http://en.wikipedia.org/wiki/Representational_State_Transfer
sumber
Ini sangat sederhana dan ramping. Anda bisa melakukannya dengan browser melalui kata kerja http: GET. Saya belum menemukan browser yang dapat secara manual melakukan permintaan POST http generik dengan mudah
sumber
Inilah satu titik data: Amazon menawarkan APInya dalam format REST dan SOAP dan 85% penggunaannya adalah REST.
REST lebih mudah diimplementasikan, lebih mudah dipahami dan kinerja lebih tinggi.
sumber