Saya berada di bawah asumsi bahwa REST adalah layanan web tetapi tampaknya saya salah dalam memikirkan hal ini - jadi, apa itu REST?
Saya sudah membaca Wikipedia tetapi masih tidak bisa membungkus kepala saya di sekitarnya. Mengapa banyak tempat menyebut API sebagai REST API?
Jawaban:
REST bukan layanan web spesifik tetapi konsep desain (arsitektur) untuk mengelola informasi keadaan. Makalah mani tentang ini adalah disertasi Roy Thomas Fielding (2000), "Gaya Arsitektur dan Desain Arsitektur Perangkat Lunak Berbasis Jaringan" ( tersedia online dari University of California, Irvine).
Pertama, baca posting Ryan Tomayko Bagaimana saya menjelaskan REST kepada istri saya ; ini adalah titik awal yang bagus. Kemudian baca disertasi aktual Fielding. Itu tidak setinggi itu, juga tidak terlalu panjang (enam bab, 180 halaman)! (Saya tahu Anda anak-anak di sekolah suka pendek).
EDIT: Saya merasa tidak ada gunanya untuk mencoba menjelaskan REST. Ini memiliki banyak konsep seperti skalabilitas, visibilitas (stateless) dll yang perlu dipahami pembaca, dan sumber terbaik untuk memahami mereka adalah disertasi yang sebenarnya. Ini lebih dari POST / DAPATKAN dll.
sumber
REST adalah pola desain perangkat lunak yang biasanya digunakan untuk aplikasi web. Dalam istilah awam ini berarti bahwa itu adalah ide yang umum digunakan dalam banyak proyek yang berbeda. Itu singkatan dari Transfer Negara Representatif . Ide dasar REST adalah memperlakukan objek di sisi server (seperti pada baris dalam tabel database) sebagai sumber daya yang dapat dibuat atau dihancurkan.
Cara berpikir paling mendasar tentang REST adalah sebagai cara memformat URL aplikasi web Anda. Misalnya, jika sumber daya Anda disebut "posting", maka:
/posts
Akan menjadi bagaimana pengguna akan mengakses SEMUA posting, untuk ditampilkan./posts/:id
Akan menjadi bagaimana pengguna akan mengakses dan melihat posting individu, diambil berdasarkan id unik mereka./posts/new
Akan menjadi bagaimana Anda akan menampilkan formulir untuk membuat posting baru.Mengirim permintaan POST
/users
akan menjadi bagaimana Anda benar-benar akan membuat posting baru di tingkat basis data.Mengirim permintaan PUT
/users/:id
adalah bagaimana Anda akan memperbarui atribut dari posting yang diberikan, sekali lagi diidentifikasi oleh id unik.Mengirim permintaan DELETE ke
/users/:id
bagaimana Anda akan menghapus posting yang diberikan, sekali lagi diidentifikasi oleh id unik.Seperti yang saya pahami, pola REST terutama dipopulerkan (untuk aplikasi web) oleh kerangka kerja Ruby on Rails, yang memberikan penekanan besar pada rute RESTful. Saya bisa salah tentang itu.
Saya mungkin bukan yang paling memenuhi syarat untuk membicarakannya, tetapi ini adalah bagaimana saya mempelajarinya (khusus untuk pengembangan Rails).
Ketika seseorang merujuk ke "api REST," umumnya yang mereka maksud adalah api yang menggunakan url ISTIRAHAT untuk mengambil data.
sumber
REST
adalah gaya arsitektur dan desain untuk arsitektur perangkat lunak berbasis jaringan.REST
konsep disebut sebagai sumber daya. Representasi sumber daya harus tanpa kewarganegaraan. Ini diwakili melalui beberapa jenis media. Beberapa contoh jenis media termasukXML
,JSON
, danRDF
. Sumber daya dimanipulasi oleh komponen. Komponen meminta dan memanipulasi sumber daya melalui antarmuka seragam standar. Dalam hal HTTP, antarmuka ini terdiri dari ops HTTP standarGET
, misalnyaPUT
,POST
,DELETE
.REST
biasanya digunakan lebihHTTP
, terutama karena kesederhanaan HTTP dan pemetaan yang sangat alami untuk prinsip RESTful. Namun REST tidak terikat dengan protokol khusus apa pun.Prinsip REST Fundamental
Komunikasi Client-Server
Arsitektur client-server memiliki pemisahan keprihatinan yang sangat berbeda. Semua aplikasi yang dibangun dengan gaya RESTful juga harus pada prinsipnya client-server.
Tanpa kewarganegaraan
Setiap permintaan klien ke server mensyaratkan bahwa negaranya sepenuhnya terwakili. Server harus dapat sepenuhnya memahami permintaan klien tanpa menggunakan konteks server atau status sesi server apa pun. Oleh karena itu, semua status harus disimpan pada klien. Kami akan membahas perwakilan tanpa negara secara lebih rinci nanti.
Cacheable
Batasan cache dapat digunakan, sehingga memungkinkan data respons untuk ditandai sebagai dapat disimpan atau tidak. Setiap data yang ditandai sebagai dapat disimpan kembali dapat digunakan kembali sebagai respons terhadap permintaan berikutnya yang sama.
Antarmuka Seragam
Semua komponen harus berinteraksi melalui antarmuka seragam tunggal. Karena semua interaksi komponen terjadi melalui antarmuka ini, interaksi dengan berbagai layanan sangat sederhana. Antarmukanya sama! Ini juga berarti bahwa perubahan implementasi dapat dilakukan secara terpisah. Perubahan seperti itu, tidak akan mempengaruhi interaksi komponen mendasar karena antarmuka yang seragam selalu tidak berubah. Salah satu kelemahannya adalah Anda terjebak dengan antarmuka. Jika optimasi dapat diberikan ke layanan tertentu dengan mengubah antarmuka, Anda kurang beruntung karena REST melarang ini. Namun, sisi baiknya, REST dioptimalkan untuk web, karenanya popularitas REST yang luar biasa atas HTTP!
Konsep di atas menggambarkan karakteristik REST dan membedakan arsitektur REST dari arsitektur lain seperti layanan web. Penting untuk dicatat bahwa layanan REST adalah layanan web, tetapi layanan web belum tentu merupakan layanan REST.
Lihat posting blog ini di Prinsip - prinsip Desain REST untuk detail lebih lanjut tentang REST dan prinsip-prinsip di atas.
sumber
Itu singkatan dari Representational State Transfer dan itu bisa berarti banyak hal, tetapi biasanya ketika Anda berbicara tentang API dan aplikasi, Anda berbicara tentang REST sebagai cara untuk melakukan layanan web atau mendapatkan program untuk berbicara melalui web.
REST pada dasarnya adalah cara berkomunikasi antar sistem dan melakukan banyak hal yang dirancang untuk dilakukan oleh SOAP. Namun, sementara SOAP secara umum membuat koneksi, mengautentikasi dan kemudian melakukan hal-hal melalui koneksi itu, REST bekerja dengan cara yang hampir sama dengan cara kerja web. . Anda memiliki URL dan ketika Anda meminta URL itu Anda mendapatkan sesuatu kembali. Di sinilah hal-hal mulai membingungkan karena orang menggambarkan web sebagai aplikasi REST terbesar dan sementara ini secara teknis benar itu tidak benar-benar membantu menjelaskan apa itu.
Singkatnya, REST memungkinkan Anda untuk membuat dua aplikasi berbicara melalui Internet menggunakan alat yang mirip dengan apa yang digunakan browser web. Ini jauh lebih sederhana daripada SOAP dan banyak hal yang dilakukan REST adalah, "Hei, segalanya tidak harus begitu rumit."
Layak dibaca:
sumber
http://en.wikipedia.org/wiki/Representational_State_Transfer
Ide dasarnya adalah bahwa alih-alih memiliki koneksi yang berkelanjutan ke server, Anda membuat permintaan, mendapatkan beberapa data, menunjukkannya kepada pengguna, tetapi mungkin tidak semuanya, dan kemudian ketika pengguna melakukan sesuatu yang membutuhkan lebih banyak data, atau untuk meneruskan ke server, klien memulai perubahan ke status baru.
sumber