Membuat REST API Dengan CodeIgniter

Membuat REST API dengan PHP khususnya framework CodeIgniter sangat mudah dan cepat. Pada tutorial kali ini saya akan membahas pembuatan dasar nya terlebih dahulu. Sebelum memulai, persiapkan terlebih dahulu:

- Telah menggunakan dan memahami Codeigniter
- Web Browser Chrome dengan Plugin Postman
- CodeIgniter versi 3.0.6

1. Persiapkan CodeIgniter 3.0.6
Saat tulisan ini dibuat saya menggunakan versi terbaru CodeIgniter yaitu 3.0.6. Ektrak dan letakkan pada webserver kalian dengan nama ci-restserver.

2. Download Plugin CodeIgniter-RestServer
Untuk memudahkan membuat Rest API di CodeIgniter kita dapat menggunakan library buatan Chris Kacerguis di halaman githubnya

Setelah di download dari link github diatas copy tiap file berikut ke dalam folder didalam project CodeIgniter kalian:
- application/libraries/Format.php
- application/libraries/REST_Controller.php
- application/config/rest.php
- application/language/english/rest_controller_lang.php

3. Memulai Koding
Buat terlebih dahulu file .htaccess didalam folder project ci-restserver yang berisi:
RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Lalu Buat controller baru di application/controllers/api.php yang berisi:
<?php defined('BASEPATH') OR exit('No direct script access allowed');

require APPPATH.'/libraries/REST_Controller.php';

class Api extends REST_Controller{
    function __construct(){
        parent::__construct();
    }

    function siswa_get(){
        $this->response('My first API response = GET METHOD');
    }

    function siswa_arr_get(){
        $siswa = array(
            1 => array('first'=>'rudi', 'last_name'=>'nur'),
            2 => array('first'=>'ani', 'last_name'=>'nuni')
        );
        $this->response($siswa);
    }

    function siswa_post(){
        $this->response('My first API response = POST METHOD');
    }

    function siswa_put(){
        $this->response('My first API response = PUT METHOD');
    }

    function siswa_delete(){
        $this->response('My first API response = DELETE METHOD');
    }

}

Penjelasan dari kode diatas:
Controller bernama api.php yang nantinya akan dipanggil melalui client (Mobile, Desktop atau Web) yang berisi 4 http method yaitu: GET, POST, PUT dan DELETE.

Dari tiap method yang dipanggil akan menampilkan pesan masing-masing yang berada di dalam response()

Untuk menerapkan HTTP saat controller dipanggil, berikan nama function yang diakhir dengan _httpMethod.

function siswa_get()
Merupakan function siswa yang dipanggil menggunakan method HTTP GET

function siswa_post()
Merupakan function siswa yang dipanggil menggunakan method HTTP POST

function siswa_put()
Merupakan function siswa yang dipanggil menggunakan method HTTP PUT

function siswa_delete()
Merupakan function siswa yang dipanggil menggunakan method HTTP DELETE

function siswa_arr_get()
Merupakan function siswa yang dipanggil menggunakan method HTTP GET dengan output JSON array

4. URL REST API
OK code sudah jadi dan url API CodeIgniter yang telah dibuat berada di:
http://localhost/ci-restserver/api/siswa

5. Memanggil REST API CodeIgniter
Setelah code diatas selesai langkah selanjutnya adalah memanggil API tsb melalui aplikasi client.

Bagi yang suka dengan perintah dasar/command line dapat menggunakan curl dengan perintah:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST http://localhost/ci-restserver/api/siswa

dan akan mendapatkan hasil:
"My first API response = POST METHOD"

Tulisan POST pada curl diatas dapat kalian ganti dengan method yang lain misalnya GET, PUT dan DELETE untuk mendapatkan response yang berbeda.

Bagi pengguna web browser Chrome dapat menggunakan Postman dengan melakukan install terlebih dahulu melalui Chrome Web Store dengan mengetikan di kotak pencarian.

Install, buka Postman dan ketikkan http://localhost/ci-restserver/api/siswa serta ganti dropdown menjadi GET dan tekan tombol Send. Akan tampil hasilnya seperti berikut


coba kembali dengan url http://localhost/ci-restserver/api/siswa_arr dengan method GET


akan tampil response dalam bentuk array sesuai dengan code yang telah kita tulis diatas. Untuk mencoba method lainnya dari REST API yang telah kita buat dapat kalian ganti url beserta methodnya didalam Postman.
Membuat REST API Dengan CodeIgniter Membuat REST API Dengan CodeIgniter Reviewed by rizupz on Minggu, Mei 15, 2016 Rating: 5

2 komentar:

Unknown mengatakan...

Fungsinya rewrite apa ya di file .htaccess ?

Unknown mengatakan...

Gan saya mau tanya, kalau error values itu cara ngatasinnya gimana ya?

Diberdayakan oleh Blogger.