Apa itu REST (dalam bahasa Inggris sederhana) [ditutup]

84

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 )

  1. Apa itu REST
  2. Posisi apa yang ditempuhnya dalam ekosistem arsitektur web
  3. Seberapa erat (atau longgar) itu digabungkan dengan protokol.
  4. 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.

Gaurav
sumber
Saya menemukan ini informatif, namun tidak terlalu rinci: ibm.com/developerworks/webservices/library/ws-restful
NoChance
Saya ingin tahu apakah pertanyaan ini dapat dianggap dijawab?
Gary Rowe
@ GaryRowe Saya telah menandai satu jawaban, kira itu dihapus karena beberapa alasan. Saya tidak mengerti situs ini.
Gaurav
1
Tidak ada jawaban di bawah ini yang menggunakan kata "idempoten." Anda harus mencarinya: idempotensi adalah aspek penting dari arsitektur RESTful.
Solomon Slow

Jawaban:

10

Apa itu REST (dalam bahasa Inggris sederhana)

Bahasa Inggris Biasa:

REPresentational: tindakan berbicara atau bertindak atas nama seseorang.
State Transfer: status transfer.


Teknis:

  • kami tidak mentransfer objek aktual tetapi representasi objek dalam bentuk (mis., xml / json / teks untuk mewakili tabel database).
  • REST untuk mengekspos API publik melalui internet untuk menangani operasi CRUD pada data. REST berfokus pada mengakses sumber daya yang disebutkan melalui antarmuka tunggal yang konsisten.
  • REST diwakili melalui beberapa jenis media. Beberapa contoh jenis media termasuk XML, JSON, dan RDF.
  • REST adalah gaya arsitektur untuk arsitektur berorientasi sumber daya (ROA) , bukan spesifikasi atau standar.
  • Gaya arsitektur berarti konsep, teori (dan bagaimana penerapannya, terserah Anda)
  • Semuanya diidentifikasi oleh titik akhir yang unik. yaitu Ada satu titik akhir untuk setiap sumber daya (data).
  • Endpoint terdiri dari nama domain dengan alamat sumber daya.

SISA vs SABUN

Premraj
sumber
43

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)

Gary Rowe
sumber
Anda mengatakan "REST bukan HTTP", tetapi Roy Fielding tampaknya cukup terpaku pada gagasan bahwa hypertext adalah persyaratan, apa dengan seluruh kesepakatan HATEOAS yang tanpanya - menurutnya - Anda tidak melakukan REST yang "tepat". Sementara hypertext! = HTTP, saya ingin tahu seberapa banyak yang dapat Anda lakukan di luar HTTP ...
Andres F.
Menurut ini ( roy.gbiv.com/untangled/2008/... ) Roy Fielding menyatakan bahwa hypertext, atau subsetnya, hypermedia, dapat diekspresikan di luar HTML asalkan mendukung suatu jenis tautan.
Gary Rowe
3
HTTP berfungsi baik dengan REST karena ia menawarkan kata kerja terstandarisasi untuk bekerja dengan URI yang mewakili kata benda di REST dalam protokol stateless. Ideal. Namun dalam disertasinya ( ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm ) ia mencatat bahwa "REST tidak membatasi komunikasi ke protokol tertentu, tetapi ia membatasi antarmuka antara komponen, dan karenanya ruang lingkup dari interaksi dan asumsi implementasi yang mungkin dibuat antar komponen. " Dengan demikian implementasi penuh FTP tidak mungkin tenang tanpa manajemen negara sisi klien.
Gary Rowe
2
+1 untuk tautan Martin Fowler. Seperti biasa Martin Fowler telah menulis sebuah artikel yang menjelaskan konsep dengan cara yang paling jelas dan ringkas
Tom Carter
Anda membahas state transferbukan representasi. tindakan berbicara atau bertindak atas nama seseorang adalah representasi cara kerjanya dalam konteks ini?
Premraj
11

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:

JB King
sumber
2
Terima kasih atas tautannya ke "Pelajari REST: Tutorial"! Itulah tutorial pertama yang saya baca yang membuat saya merasa telah belajar sesuatu yang konkret. Segala sesuatu yang saya baca (termasuk artikel Wikipedia) menggambarkan REST hanya dalam cara yang paling abstrak, dikelilingi oleh jargon teknis.
Avian00
tautan pertama tidak berfungsi. Namun, jawaban Anda sangat membantu !!
Penggemar