terpisah dan lepas dari sistem informasi, pemograman, processor, dan protokol internal Breitman et al. 2007.
Menurut Filho Ferreira 2009, pendekatan REST pada dasarnya terdiri dari lima konsep resource, representasi, uniform identifier, unified interface, dan
lingkup eksekusi, dan tiga prinsip adressability, statelessness, dan keterhubungan. Hal yang membedakan RESTful dengan web service lainnya
adalah linkup dari request dan response harus didefinisikan saat operasi berlangsung.
2.3 Application state dan Resource State
Richardson Ruby 2007 menjelaskan state berarti suatu keadaan dari suatu informasi yang tersimpan pada suatu sistem di waktu tertentu. Sebagai
contoh, jika terdapat suatu resource bernama order, akan terdapat dua keadaanstate dari resource tersebut: order telah terkirim atau order belum
terkirim. Suatu resource jarang sekali hanya memiliki satu state dari waktu ke waktu. Perubahan suatu state tersebut disebut state transition dan bagian dari
sistem yang mengatur transisi state tersebut disebut sebagai state engine. State pada REST terdiri atas dua tipe: application state dan resource state.
Application state berada pada mesin client, sedangkan resource state berada pada mesin server. Application state dapat digambarkan sebagai suatu kondisi dari
aplikasi yang dijalankan di client, pada kasus pencarian menggunakan mesin pencari search engine, halaman hasil pencarian yang sedang dibuka oleh client
dapat dikatakan sebagai application state. Resource state dapat dikatakan sebagai persistence dari resource yang ada dan terletak di server. Application state dari
client yang satu dengan yang lain bisa berbeda, sebaliknya resource state dari seluruh client adalah sama.
2.4 Hypermedia As The Engine Of Application State HATEOAS
W3C Glosary Dictionary 2003 mendefinisikan hypertext sebagai teks yang mengandung tautan ke teks lainnya. Hypermedia adalah istilah yang digunakan
untuk hypertext yang mengacu tidak hanya kepada teks, tapi suara, video, grafik, dan lain-lain.
HATEOAS Hypermedia As The Engine Of Application State adalah aturan yang membedakan arsitektur aplikasi berbasis REST dengan aplikasi lain yang
berbasis client-server. Prinsip dasarnya adalah client berinteraksi dengan aplikasi jaringan melalui hypermedia yang diberikan secara dinamis oleh server Fielding
2000. Filosofi pemanfaatan hypermedia adalah membuat aplikasi client dapat
menelusuri seluruh resource yang ada di server maupun melakukan modifikasi terhadap state dari resource yang ada walaupun tanpa adanya antarmuka sehingga
dapat dilakukan oleh aplikasi yang berjalan tanpa manusia. HATEOAS terdiri atas dua jenis: link dan form.
Link adalah atribut dari suatu resource yang berisi suatu hypermedia. Form adalah suatu representasi yang dikirim oleh server dalam bentuk yang deskriptif.
Bentuk tersebut berisi semua informasi yang dibutuhkan oleh client untuk melakukan manipulasi terhadap resource state di server.
Komunikasi diawali oleh client dengan cara melakukan suatu request menggunakan URI statis yang sederhana. Interaksi lanjutan dari aksi sebelumnya
akan dilakukan berdasarkan representasi resource yang dikembalikan oleh server dan relasi link hypermedia yang ada di dalamnya. Perubahan application state
yang ada di client dilakukan melalui pemilihan link yang tersedia di dalam representasi yang dikirim oleh server seperti pada Gambar 1 berikut.
Gambar 1 Representasi photo yang berisi hypermedia jenis link Allamaraju 2010
2.5 Template URI