Panada Framework 0.3.1 Documentation

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;

Diskusi