Representational State Transfer (REST) adalah sebuah model arsitektur untuk membangun suatu aplikasi hypermedia terdistribusi, REST sendiri bukan spesifikasi namun sebuah abstraksi dari arsitektur world wide web (Cupek dkk., 2015). RESTful service adalah sebuah layanan yang memenuhi batasan-batasan dari REST. Batasan dari sebuah REST adalah sebagai berikut (Fielding, 2000):

  • a. Client Server, batasan ini mewajibkan adanya pembagian tugas antara fungsi antarmuka pengguna dengan fungsi penyimpanan data. Server fokus pada fungsi penyimpanan data sementara klien fokus pada fungsi antarmuka pengguna dan user state.
  • b. Stateless, batasan ini menyatakan bahwa kondisi resource yang diinginkan sesi klien tidak disimpan di server, setiap request adalah unit lengkap yang harus mengandung semua informasi yang diperlukan agar server dapat melayani memberikan resource dalam kondisi yang diinginkan.
  • c. Cache, batasan ini memerlukan kemampuan untuk menyimpan salinan dari representasi resource yang sering diakses, sehingga ketika klien mengirimkan request terhadap sebuah representasi resource maka permintaan request tersebut melewati cache dahulu sebelum sampai di server hosting dan klien menerima salinan cache. Jika salinan sudah kadaluarsa maka permintaan request menuju langsung ke server hosting.
  • d. Uniform interface, batasan ini memerlukan adanya sebuah antarmuka seragam untuk mengidentifikasikan resource, memanipulasi resource sesuai representasi, dan penggunaan hypermedia di dalam sistem.
  • e. Layered, batasan ini mengijinkan penggunaan arsitektur sistem yang berlapis-lapis dengan fungsi berbeda di setiap lapisnya, seperti pembagian lapisan menjadi sebuah server untuk menangani data, sebuah server menangani request klien, sebuah server menangani otentifikasi, dan sebuah server menangani cache, sehingga klien tidak tahu apakah dia terhubung langsung dengan server atau terhubung dengan penengah.

Tabel 1 Contoh operasi terhadap resource pegawai

HTTP Method

URI

Deskripsi

GET

/pegawai

Membaca daftar pegawai

POST

/pegawai

Membuat resource pegawai

GET

/pegawai/99901

Membaca sebuah resource data pegawai berdasarkan ID

PUT

/pegawai/99901

Update pegawai

DELETE

/pegawai/99901

Menghapus pegawai

Dalam arsitektur REST, resource merupakan segala sesuatu informasi, baik berupa sebuah dokumen maupun citra. Resource disediakan server dan klien me-request resource tersebut. Agar dapat dikenali dan dibedakan maka suatu resource perlu pengenal. Suatu URI (Uniform Resource Identifier) digunakan sebagai pengenal resource sehingga setiap resource akan memiliki URI berbeda. Antara resource satu dengan lainnya dapat saling berelasi dan ter-link, dan dengan adanya URI memudahkan kemampuan link tersebut. Tabel 1 memberikan contoh operasi yang dapat dilakukan terhadap resource pegawai dengan URI tertentu.

Representasi merupakan pemetaan sementara dari suatu resource disaat terjadi request yang selanjutnya ditransmisikan antara server dan klien. Suatu layanan RESTful web service bisa saja memiliki banyak representasi dari suatu resource karena layanan bisa jadi tidak hanya diakses oleh browser. Dengan mengikuti prinsip uniform interface dan penggunaan hypermedia di dalam sistem sehingga suatu resource dapat memiliki link ke resource lainnya, maka representasi XML dan JSON menjadi format yang banyak digunakan dalam mengembangkan RESTful web service (Sandoval, 2009).

Referensi:

Cupek, R. dan Huczala, L., 2015, OData for Service-Oriented Business Applications, 2015 IEEE International Conference on Industrial Technology (ICIT), Spanyol, Maret 2015, hal. 1538 – 1543.

Fielding, R.T., 2000, Architectural Styles and the Design of Network-based Software Architectures, Doctoral Dissertation, University of California in Irvine, US.

Sandoval, J., 2009, RESTful Java Web Services: Master core REST concepts and create RESTful web services in Java, Packt Publishing, United Kingdom.



Leave a Reply

Your email address will not be published. Required fields are marked *

Search

Welcome

Bayu Pratama R N is a lonely programmer who is very enthusiastic about .NET. He just try to live a life of a programmer life and write a blog post when he is so sick about love.

Gallery