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 termasuk XML
, JSON
, dan RDF
. Sumber daya dimanipulasi oleh komponen. Komponen meminta dan memanipulasi sumber daya melalui antarmuka seragam standar. Dalam hal HTTP, antarmuka ini terdiri dari ops HTTP standar GET
, misalnya PUT
,POST
, DELETE
.
REST
biasanya digunakan lebih HTTP
, 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.