RESTfull
Panada menyediakan class REST (Representational State Transfer) untuk memudahkan dalam pembuatan aplikasi web service atau APIs.
Dalam konteks API, setidaknya ada dua aplikasi yang saling berhubungan yaitu Provider dan Consummer. Provider adalah aplikasi pemberi layanan dan Consummer adalah aplikasi yang menerima layanan.
Inisialisasi
Baik untuk Provider ataupun Consumer, library REST harus diinisialisasi terlebih dahulu.
$this->rest = new Library_rest();
Provider
Sebagai penyedia layanan, maka aplikasi provider akan menerima request dari aplikasi consumer. Untuk menerima request ini gunakan method:
$data = $this->rest->get_request();
Selain POST dan GET, REST juga menggunakan PUT dan DELETE sebagai method request. Untuk mendapatkan jenis request method ini gunakan:
$this->rest->request_method;
Berikut adalah contoh controller untuk REST Provider.
Untuk memberikan status respons pada header, gunakan method berikut:
$this->rest->set_response_header(200);
Berikut keterangan beberapa status header untuk digunakan sebagai respons provider.
| Status | Keterangan | Contoh Penggunaan |
|---|---|---|
| 200 | OK | Requst berhasil dilakukan. |
| 201 | Created | Data baru berhasil dibuat, misalnya dengan request method PUT. |
| 400 | Bad request | Gagal dalam proses request. |
| 500 | Internal Server Error | Terjadi kesalahan pada proses internal. |
| 501 | Not implemented | Terjadi ketidaksesuaian antara request method yang diizinkan dengan request yang dilakukan consumer. Misalnya yang diizinkan adalah POST sedangkan consumer menggunakan GET. |
| 503 | Service unavailable | Jika layanan tidak tersedia. |
Daftar selengkapnya bisa dilihat di halaman http://en.wikipedia.org/wiki/List_of_HTTP_status_codes.
Dalam memberikan ouput data, aplikasi API umumnya menggunakan format xml atau json. Secara default, Panada menggunakan format json. Method yang digunakan untuk menampilkan output ini adalah:
$print = $this->rest->wrap_response_output($data, 'json');
Silahkan ganti keterangan json dengan xml jika output yang diinginkan berformat xml.
Consumer
Untuk melakukan request ke API Provider, consumer menggunakan method:
$contents = $this->rest->send_request($uri, $method, $data);
Dimana:
| Variable | Keterangan |
|---|---|
| $uri | Alamat url API Provider misalnya: http://api.twitter.com/1/users/show.json |
| $method | Method request yang digunakan. Pilihannya adalah POST, GET, PUT dan DELETE. |
| $data | Array data yang akan direquest, misalnya: $data = array('screen_name' => 'panadaframework'); |
Berikut adalah contoh controller untuk REST Consumer:
Untuk mendapatkan status respon header, gunakan method:
$this->rest->response_status;