@ Yana | Catatan Kehidupan

REST Constraints

Roy fielding dalam disertasi doktornya menjelaskan enam constraints dalam gaya arsitektur REST (Fielding, 2000). Keenam constraints tersebut adalah:

  • Client Server, gaya arsitektur REST secara sederhana dapat digambarkan sebagai arsitektur client server yang menggunakan protokol Hypertext Transfer Protocol (HTTP), dimana client melakukan permohonan (request) kepada sebuah mesin dalam hal ini adalah sebuah web server, kemudian server merespon permohonan client Penggunaan client server bertujuan untuk memisahkan user interface dengan penyimpanan data sehingga meningkatkan portabilitas dan skalabilitas.
  • Stateless, Setiap permintaan dari client kepada server harus berisi semua informasi yang diperlukan untuk memproses permohonan tersebut. Server tidak menyimpan session dari klien, sehingga session sepenuhnya disimpan oleh client.
  • Cache, Keuntungan cache adalah berpotensi menghapus sebagian interaksi secara parsial atau seluruhnya, sehingga meningkatkan efisiensi, skalabilitas, dan kinerja pengguna dengan mengurangi lalu lintas jaringan.
  • Uniform Interface, Dengan menerapkan prinsip rekayasa perangkat lunak secara umum ke komponen interface, keseluruhan arsitektur sistem disederhanakan dan visibilitas interaksi ditingkatkan. Interface REST didesain agar efisien untuk transfer data hypermedia yang sangat besar,.
  • Layered System, sistem berlapis memungkinkan arsitektur terdiri dari lapisan hierarkis dengan membatasi perilaku komponen sedemikian rupa sehingga setiap komponen tidak dapat “melihat” di luar lapisan langsung tempat mereka berinteraksi. 
  • Code an demand (optional), REST memungkinkan fungsionalitas klien diperluas dengan mengunduh dan mengeksekusi kode dalam bentuk applet atau skrip. Hal ini menyederhanakan klien dengan mengurangi jumlah fitur yang harus diimplementasikan sebelumnya. Mengizinkan fitur yang akan diunduh setelah penerapan perluasan sistem. Namun, ini juga mengurangi visibilitas, sehingga constrainst ini bersifat opsional.

 

Daftar Pustaka:

Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. Building. University of California. Retrieved from http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm