Berawal dari kebutuhan penggunaan REST (Representational State Transfer) untuk melakukan exchange data antar aplikasi web. Saya pun mencoba mempelajarinya mulai dari tulisan ini, karena akhir-akhir ini saya lebih sering menggunakan CodeIgniter. (tulisannya sudah usang ya, ditulis 2010 lho?)
Untuk penggunaannya pada sisi server (REST Server) ternyata sangat mudah dan saya tidak menemui masalah sampai saat ini, bahkan kita sudah dimanjakan dengan berbagai format yang tersedia seperti JSON, XML, CSV dan lain sebagainya.
Pada sisi client, saya pun mencoba untuk mengambil data atau resource yang telah digenerate. Ada dua cara yang bisa dilakukan, yaitu menggunakan function file_get_contents() dan cURL.
- file_get_contents() — Dengan menggunakan function file_get_contents() memang sangatlah mudah dalam penggunaannya, hanya saja authentication yang mendukung hanya ‘basic’, ketika saya mencoba menggunakan ‘digest‘ terjadi kegagalan.
- cURL — Jika ingin menggunakan opsi ini, penggunaannya cukup kompleks dan dibutuhkan cURL yang telah terinstall. Namun, Philip Sturgeon memberi kemudahan dengan adanya REST Client yang telah dia buat.
Setelah saya mencoba REST Client CodeIgniter yang dibuat oleh Philip tersebut, banyak sekali problem ditemukan. Tak heran banyak sekali keluhan-keluhan di internet berkaitan dengan penggunaan REST Client CodeIgniter ini karena untuk menggunakannya dibutuhkan Sparks Package Manager, sementara Philip sendiri tidak menuliskan secara detil tentang diperlukannya Sparks ini. Ditambah lagi instalasi Sparks ini cukup rumit bagi pemula terutama pengguna Windows.
Instalasi Sparks & Penggunaan REST Client
Permasalahan penggunaan REST Client tersebut dapat diatasi dengan beberapa langkah berikut:
- Download terlebih dahulu Sparks di sini
- Extract pada folder root CodeIgniter, misalkan:
C:\xampp\htdocs\restclient\tools\sparks
- Buat file loader baru bernama MY_Loader.php pada direktori application/core/ dengan berisikan source code berikut, paste pada file tersebut
- Edit file tersebut dengan merubah kode:
define('SPARKPATH', 'sparks/');
menjadi:define('SPARKPATH', 'tools/' . 'sparks/');
- Jika menggunakan Windows, pada Computer Properties, tab Advance, tekan button Environment Variables. Pada bagian System Variables, tambahkan Value pada Variable PATH lokasi file
php.exe
, sehingga value ditambahkan menjadi:";C:\xampp\php\"
- Selanjutnya lakukan Log Off terlebih dahulu
- Buka Command Prompt, lalu masuk ke folder tools yang berada di dalam folder root CodeIgniter, misalkan posisi saat ini berada di C:\xampp\htdocs\restclient\tools\.
- Install cURL menggunakan perintah:
php sparks\spark install -v1.2.0 curl
- Install Rest Client menggunakan perintah:
php sparks\spark install -v2.1.0 restclient
- Penggunaan Rest Client dibutuhkan load melalui spark dengan menggunakan kode:
$this->load->spark('restclient/2.1.0');
- PENTING: Jika menggunakan authentication, pemanggilan library rest dan initialize perlu dilakukan terpisah. Sehingga menjadi:
$this->load->library('rest'); $this->load->initialize($array_params);
. Karena setelah saya mencoba memanggil library rest sekaligus dengan initialize, authentication gagal dilakukan!
Setelah saya mencoba mengikuti langkah-langkah diatas, saya bisa menggunakan REST Client dengan baik. Selain itu, saya pun berhasil menggunakan ‘digest’ authentication yang lebih secure. Selamat mencoba! 😀