Akhir-akhir ini saya tertarik membiasakan diri dengan REST. Saya mencoba membaca entri wiki di REST , tetapi itu tidak membantu. Saya akan sangat menghargai jika seseorang dapat menjelaskan dalam bahasa Inggris yang sederhana (itu tanpa jargon teknologi yang tidak perlu )
- Apa itu REST
- Posisi apa yang ditempuhnya dalam ekosistem arsitektur web
- Seberapa erat (atau longgar) itu digabungkan dengan protokol.
- Apa alternatif untuk REST dan bagaimana REST dibandingkan dengan mereka.
Saya mengerti mungkin tidak mungkin menjawab ini dalam satu atau dua paragraf, dalam hal ini tautan yang relevan akan sangat dihargai.
Jawaban:
Bahasa Inggris Biasa:
REPresentational: tindakan berbicara atau bertindak atas nama seseorang.
State Transfer: status transfer.
Teknis:
SISA vs SABUN
sumber
Apa itu REST?
Transfer Negara Representatif. Ini menjelaskan bagaimana satu sistem dapat berkomunikasi keadaan dengan yang lain. Salah satu contoh adalah keadaan suatu produk (namanya, deskripsi dll) yang direpresentasikan sebagai XML, JSON, atau teks biasa. Gagasan umum negara disebut sumber daya.
Posisi apa yang ditempatinya dalam ekosistem arsitektur web?
REST umumnya dikaitkan dengan antarmuka layanan web karena HTTP sejauh ini merupakan protokol operator yang paling umum. Dalam model 7-lapisan itu ada di lapisan aplikasi . Namun, lihat bagian selanjutnya.
Seberapa erat (atau longgar) itu digabungkan dengan protokol?
REST bukan HTTP. Ia menggunakan HTTP karena dalam bentuk yang paling umum REST ada untuk membantu mesin dalam memetakan konsep kata kerja terhadap kumpulan kata benda yang berubah-ubah. HTTP berisi seperangkat kata kerja generik yang berguna (GET, PUT, PATCH dll) yang dapat diterapkan pada kata benda sewenang-wenang yang dinyatakan sebagai URI menggunakan HTTP misalnya GET http://example.org/Product(54 ).
Apa alternatif untuk REST dan bagaimana REST dibandingkan dengan mereka
Ini mirip dengan bertanya, "Seberapa tenang pendekatan saya?" Gunakan daftar berikut (dirangkum dari Richardson Maturity Model seperti yang dijelaskan oleh Martin Fowler ):
Level 0 - Rawa POX
Gunakan POST untuk semuanya (membaca, menulis, menghapus). Ini adalah SOAP, POX, RPI dll. Anda hanya menggunakan HTTP sebagai terowongan untuk protokol Anda sendiri. Anda menargetkan titik akhir tunggal yang melakukan segalanya berdasarkan konten dari badan permintaan.
Level 1 - Sumber Daya
Gunakan POST untuk semuanya. Targetkan beberapa titik akhir yang dirancang untuk menyajikan informasi tentang hal tertentu. Anda baru saja menemukan sumber daya.
Level 2 - kata kerja HTTP
Gunakan kata kerja HTTP terhadap sumber daya. Sekarang Anda DAPATKAN. POST adalah untuk membuat, PUT adalah untuk menimpa, OPSI untuk operasi yang tersedia, HAPUS untuk, well, hapus sumber daya. Sebagai hasil dari penggunaan kata kerja ini, berbagai kode status HTTP mulai menjadi lebih relevan (202 DITERIMA siapa saja?).
Level 3 - Kontrol Hypermedia ( HATEOAS )
Pada titik ini Anda membuat lompatan terakhir dan memperkenalkan hypermedia sebagai mekanisme kontrol aliran. Klien REST tidak memerlukan pengetahuan sebelumnya tentang cara berinteraksi dengan aplikasi atau server tertentu di luar pemahaman generik hypermedia. Ini dapat dikomunikasikan dalam HTTP melalui bidang header Tipe-Konten. Format teks termasuk AtomPub dan (lebih ringkas) HAL , sementara HyperAudio bekerja dengan baik untuk stream audio (lihat SoundCloud et al)
sumber
state transfer
bukan representasi. tindakan berbicara atau bertindak atas nama seseorang adalah representasi cara kerjanya dalam konteks ini?Sementara REST adalah singkatan dari Representational State Transfer, mungkin lebih mudah untuk mempertimbangkan gagasan melakukan berbagai tindakan melalui antarmuka yang agak intuitif.
Misalnya, URL seperti http://www.mysite.com/FindProduct/125/ dapat diartikan sebagai seseorang yang ingin informasi tentang produk dengan id 125.
Sementara REST biasanya dianggap dalam hal HTTP, konsep ini dapat diterapkan pada protokol lain seperti yang tercantum dalam referensi Wikipedia.
Contoh lain dari REST yang mungkin berguna:
sumber