Mengenal Restful Web Service?

restMeski telah berkali-kali memposting tentang restful webservice, namun ternyata saya lupa bahwa saya belum memposting tentang apa itu restful sehingga membuat pembaca bertanya-tanya..

Web service adalah standard yang digunakan untuk pertukaran data antar aplikasi atau sistem. Mengapa perlu standard? karena masing2 aplikasi yang melakukan pertukaran data bisa ditulis dengan bahasa pemrograman yang berbeda atau berjalan pada platform yang berbeda. Contoh implementasi dari web service antara lain adalah SOAP dan REST.

REST adalah singkatan dari REST stands for REpresentational State Transfer. Merupakan standard dalam arsitektur web yang menggunakan Protocol HTTP untuk pertukaran data. Konsep REST pertamakali diperkenalkan oleh Roy Fielding pada tahun 2000. Cara kerjanya, REST server menyediakan jalur untuk akses resource atau data, sedangkan REST client melakukan akses resource dan kemudian menampilkan atau menggunakannya. Resource yang dihasilkan sebenarnya berupa teks, namun formatnya bisa bermacam-macam tergantung keinginan developer, umumnya adalah JSON dan XML.

Dalam mengakses sebuah resource, REST juga menggunakan konsep URI dimana ada method yang digunakan, by default adalah GET. Berikut ini method-method yang mendukung REST:
- GET, cocok untuk resource yang hanya perlu dibaca saja (read only)
- PUT, cocok digunakan untuk membuat/create resource baru.
- DELETE, cocok digunakan untuk menghapus suatu resource.
- POST, cocok digunakan untuk mengupdate suatu resource.
- OPTIONS, cocok digunakan untuk mendapatkan operasi yang disupport pada resource.

Saya menggunakan kata cocok karena implementasinya terserah masing-masing developer, itu hanya standarisasi. Ibarat kita di Indonesia harusnya ngomong itu pake bahasa Indonesia yang baik dan benar namun kenyataanya pada campur dengan bahasa daerahnya masing2 :). Tapi komunikasi berjalan lancar kan? itu yang penting. hehe.

Nah web services yang berbasis arsitektur REST kemudian dikenal sebagai RESTful web services.

Bagaimana cara kerja restful web service? Alurnya cukup sederhana sebagai berikut:
Mula2 sebuah client mengirimkan sebuah data atau request melalui HTTP Request dan kemudian server merespon melalui HTTP Response.
Komponen dari http request adalah:
- Verb, HTTP method yang digunakan misalnya GET, POST, DELETE, PUT dll.
- URI, Uniform Resource Identifier (URI) untuk mengidentifikasikan lokasi resource pada server.
- HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
- Request Header, berisi metadata untuk HTTP Request. Contoh, type client/browser, format yang didukung oleh client, format dari body pesan, seting cache dll.
- Request Body, konten dari data.
Sedangkan komponen dari http response adalah:
- Status/Response Code, mengindikasikan status server terhadap resource yang direquest. misal : 404, artinya resource tidak ditemukan dan 200 response OK.
- HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
- Response Header, berisi metadata untuk HTTP Response. Contoh, type server, panjang content, tipe content, waktu response, dll
- Response Body, konten dari data yang diberikan.

Dalam arsitektur REST, seharusnya tidak boleh menyimpan state atau penanda dari client di server. Hal ini disebut sebagai stateless atau statelessness. Contohnya pada kasus session, dimana session merupakan penanda client yang disimpan diserver. Nah session pada arsitektur REST tidak diperbolehkan.

Keuntungan dari stateless antara lain:
- Web services dapat melayani masing2 request secara independent.
- Web services tidak perlu memaintain state user, hal ini tentu membuat desain application lebih sederhana.
- HTTP merupakan protokol yang bersifat stateless.

Sedangkan kerugian dari stateless yaitu: Web services membutuhkan informasi tambahan pada masing-masing request untuk menerjemahkan request dan state dari client.

Target utama dari stateless sebenarnya adalah untuk scale-up concurrent akses terhadap aplikasi. Karena app tidak perlu menyimpan state dari client sehingga meningkatkan jumlah service terhadap request pada satu waktu.

referensi: http://www.tutorialspoint.com/restful

5 Comments
  1. kak dolop
  2. Fatkhur
  3. kapalomen
  4. Dewi maliana

Leave a Reply

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