REST == Architecture Style
Nah dengan demikian kita membuat implementasi detail tidak kelihatan. Nah jadi dimana code yg menangani URL trsebut di server ?? Bagaimana caranya ?? Nah klo misalnya udh familiar dengan web development. Maka kita biasa membuat URL seperti ini
http://www.acme.com/phonebook/UserDetails?id=12345
Nah kita dapat melakukan URL Rewriting sehingga lebih menceriminkan resource dan lebih clean
http://www.acme.com/phonebook/UserDetails/12345
Nah tricknya adalah pada web server. Kita harus mengkonfigurasi web server tersebut. Sehingga request tersebut dapat diformat. Biasanya dilakukan dengan regular expression
Kita menggunakan GET untuk retrival data. GET hanya digunakan untuk operasi2 readonly. Dant tidak mengubah state atau data dari server. Nah jadi klo parameter yg mw dikirim itu banyak gimana ? Yup situ bias diatasin contohnya.
http://www.acme.com/phonebook/UserDetails?firstName=John&lastName=Doe
Nah klo misalnya kita ingin submit data dalam jumlah yg banyak kita dapat menggunakan HTTP POST dan memasukkan parameter tersebut dalam POST body. Untuk membuat atau create kita menggunakan POST request. Tapi bias juga untuk Update dan Delete atau bahkan query read only kalau melibatkan parameter yg complex.
REST dapat menggunakan XML sebagai respon tetapi jarang sekali request menggunakan XML. Karena biasanya data atau parameter yg dilewatkan sederhana.
Kita harus selalu waspada terhadap validitas dari input yg dikirim ke server karena sifatnya yg stateless.
Response REST contohnya dalam XML adalah
<parts-list> <part id="3322"> <name>ACME Boomerang</name> <desc> Used by Coyote in <i>Zoom at the Top</i>, 1962 </desc> <price currency="usd" quantity="1">17.32</price> <uri>http://www.acme.com/parts/3322</uri> </part> <part id="783"> <name>ACME Dehydrated Boulders</name> <desc> Used by Coyote in <i>Scrambled Aches</i>, 1957 </desc> <price currency="usd" quantity="pack">19.95</price> <uri>http://www.acme.com/parts/783</uri> </part> </parts-list>
Tapi juga mendukung format lain tidak seperti SOAP yg terbatas pada XML. REST mendkung XML, JSON, CVS. Masing2 memiliki keuntungannya sendiri. Klo make javascript gampangan pake JSON. Apalagi kalo emang kita mw bikin web dengan ajax. Maka clop lah JSON yg jadi pemenang. Dengan ajax kita dapat melakukan pemanggilan ke server dengan mengguakan XmlHTTPRequest. Nah untuk bikin aplikasi AJAX jadi RESTful maka kita harus mengikuti standar rest design principle.
namun ajax, apalagi JSON itu rentan terhadap security wel.
gimana klo URI nya menjadi
http://www.acme.com/phonebook/UserDetails/firstName/lastName
Hahaha.. lupakan saja. Itu diatur di dengan url rewriting, seperti yang kau bilang. dengan regular expression. Mantap wel. mantap.. jadi gatal pengen pegang java && (Eclipse || Netbeans)