Apa itu REST - Sejarah
Pendahuluan
Bagi yang butuh intermeso dan pemanasan mengenai REST, silahkan baca pendahuluannya di sini
REST –> REpresentational State Transfer
Kemunculannya / Sejarah
Pada tahun 2000 muncul disertasi dari Roy Thomas Fielding mengenai Architectural Styles and the Design of Network-based Software Architectures yang didalamnya menceritakan konsep REST dan perjalanannya dalam menggunakan arsitektur REST untuk web semenjak tahun 1994 bersama dengan protokol HTTP.
Konsep Arsitektural REST ini mencoba menyelesaikan masalah untuk pemroresan Distribution Hypermedia Object
Di dalam disertasi nya tersebut, Roy Thomas Fielding menjelaskan REST adalah arsitektur baru untuk menangani pertukaran data dalam bentuk hypermedia di dunia web.
Roy Thomas Fielding juga menjelaskan bahwa REST ini sendiri adalah arsitektur hybrid atau gabungan dari berbagai arsitektur jaringan yang telah ada, ditambah dengan apa yang disebut connector untuk mengakses hypermedia dan membuat representasinya.
Apa yang menjadi permasalahan yang dihadapi sehingga muncul REST ini ?
Hmm.., kalau kita baca disertasi dari Roy Thomas Fielding, maka kita akan melihat bahwa pada tahun 1994 tersebut teknologi web mulai berkembang. Tetapi belum ada arsitektur standard yang dibuat untuk menangani akses dan representasi dari dokumen Hypermedia yang dimiliki di web.
Kalau mau melihat kulikan tentang Hypermedia, silahkan dilihat di sini
Saat itu teknologi web mempunyai 3 komponen utama yaitu : URI, HTTP, and HTML.
Tetapi di level diatasnya tidak ada desain arsitektur web yang benar-benar dibuat dengan hati-hati dan bertujuan menangani perkembangan dunia web yang mungkin saja akan memiliki banyak link hypermedia, keterbatasan, dan kemungkinan pengembangan di masa mendatang.
Ada beberapa contoh implementasi arsitektur web yang digunakan pada saat itu misalnya libwww (library protokol CERN untuk clients dan servers), Mosaic (the NCSA - National Center for Supercomputing Applications - browser client), dll.
Banyak gaya arsitektur jaringan yang ada saat itu bisa menjadi kandidat untuk menjadi arsitektur untuk sistem web yang terdiri dari dokumen hypermedia, diantaranya yaitu :
- client-server
- pipe-filter
- layered-system
- stateless
- cache
- remote data access
- virtual machine
- code on demand
- peer to peer
- dll
Roy Thomas Fielding berusaha mengumpulkan standard dari beberapa arsitektur diatas, dan mengusulkan standard arsitektur untuk web. Bagaimana seharusnya arsitektur di Web yang modern. Arsitektur ini dihasilkan dari kombinasi gaya arsitektur jaringan yang sudah ada, kemudian ditambahkan/didefinisikan batasan agar arsitektur itu berfungsi dengan baik, lalu ditambah dengan tambahan antarmuka connector yang seragam.
Apa saja batasan-batasan yang ditambahkan/didefinisikan untuk arsitektur baru ini
Yang perlu diingat bahwa batasan ini bukan batasan yang baru, tetapi bisa saja dari batasan yang sudah ada sebelumnya, cuma didefinisikan sebagai bagian dari arsitektur baru ini.
Dengan kata lain arsitektur REST ini merupakan hybrid dari beberapa arsitektur jaringan yang ada, cuma dibikin lebih strict dengan membuat batasan-batasan sehingga bisa disebut sebuah arsitektur baru.
Batasan-batasan arsitektur REST ini adalah sbb :
1. Client Server.
2. Stateless.
3. Cache.
4. Uniform Interface.
5. Layered system.
6. Code on Demand.
Hmmm, makin panjang saja pembahasan mengenai REST ini ya..
Detailnya akan kita bahas di artikel selanjutnya.