Langkah Demi Langkah Menerapkan REST API di CodeIgniter

CodeIgniter 4 bukan hanya cepat dan ringan ⚡, tetapi juga sangat cocok digunakan untuk membangun REST API. REST API memungkinkan aplikasi berbagi data antar platform — baik antara web, mobile, maupun sistem lain dengan format yang standar seperti JSON. 🎯

Dalam panduan ini, kita akan belajar langkah demi langkah bagaimana membuat dan mengimplementasikan REST API di CodeIgniter, mulai dari konfigurasi hingga uji coba menggunakan Postman 🧩.

1. Persiapan Lingkungan

Pastikan Semua Sudah Siap

Sebelum memulai, kamu perlu menyiapkan:

  • CodeIgniter 4 sudah terinstal (composer create-project codeigniter4/appstarter ci4_restapi)
  • ✅ Server lokal seperti XAMPP atau Laragon
  • MySQL aktif dan dapat diakses
  • ✅ Aplikasi Postman untuk menguji API

2. Membuat Database dan Tabel

Langkah Pertama: Siapkan Struktur Database

Buka phpMyAdmin dan buat database baru bernama ci4_api. Kemudian jalankan query berikut:

CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100), created_at DATETIME DEFAULT CURRENT_TIMESTAMP );

Database ini akan digunakan untuk menyimpan data pengguna yang diakses melalui API 💾.

3. Konfigurasi Database di CodeIgniter

Edit File .env

Buka file .env di root proyek CodeIgniter dan ubah bagian berikut:

database.default.hostname = localhost database.default.database = ci4_api database.default.username = root database.default.password = database.default.DBDriver = MySQLi

Pastikan koneksi database berhasil agar API dapat berinteraksi dengan data.

4. Membuat Model

Model untuk Akses Data

Buat file baru di app/Models dengan nama UserModel.php:

<?php namespace App\Models;

use CodeIgniter\Model;

class UserModel extends Model
{
protected $table = 'users';
protected $primaryKey = 'id';
protected $allowedFields = ['name', 'email', 'created_at'];
}
?>

Model ini akan digunakan untuk berinteraksi dengan tabel users di database 🔄.

5. Membuat Controller REST API

Langkah Penting: Buat Endpoint API

Buat file app/Controllers/Api/User.php dan tambahkan kode berikut:

<?php namespace App\Controllers\Api;

use CodeIgniter\RESTful\ResourceController;

class User extends ResourceController
{
protected $modelName = 'App\Models\UserModel';
protected $format = 'json';

public function index()
{
    return $this->respond($this->model->findAll());
}

public function show($id = null)
{
    $data = $this->model->find($id);
    if ($data) {
        return $this->respond($data);
    }
    return $this->failNotFound('User tidak ditemukan');
}

public function create()
{
    $data = $this->request->getJSON(true);
    if ($this->model->insert($data)) {
        return $this->respondCreated($data);
    }
    return $this->fail('Gagal menambahkan user');
}

public function update($id = null)
{
    $data = $this->request->getJSON(true);
    if ($this->model->update($id, $data)) {
        return $this->respond($data);
    }
    return $this->fail('Gagal memperbarui data');
}

public function delete($id = null)
{
    if ($this->model->delete($id)) {
        return $this->respondDeleted(['id' => $id]);
    }
    return $this->fail('Gagal menghapus data');
}


}
?>

Controller ini menyediakan endpoint untuk operasi CRUD (Create, Read, Update, Delete) menggunakan metode HTTP (GET, POST, PUT, DELETE) 🔁.

6. Menambahkan Routing

Daftarkan Rute API

Buka app/Config/Routes.php dan tambahkan baris berikut:

$routes->resource('api/user');

CodeIgniter secara otomatis akan membuat rute RESTful seperti:

  • GET /api/user → ambil semua data
  • GET /api/user/{id} → ambil data berdasarkan ID
  • POST /api/user → tambahkan data baru
  • PUT /api/user/{id} → update data
  • DELETE /api/user/{id} → hapus data

7. Uji API Menggunakan Postman

Langkah Uji Fungsionalitas

Jalankan server CodeIgniter dengan perintah:

php spark serve

Lalu buka Postman dan lakukan pengujian:

MethodEndpointDeskripsi
GEThttp://localhost:8080/api/userMenampilkan semua user
POSThttp://localhost:8080/api/userMenambahkan user baru
PUThttp://localhost:8080/api/user/1Update user dengan ID 1
DELETEhttp://localhost:8080/api/user/1Hapus user dengan ID 1

8. Menambahkan Validasi Input

Pastikan Data yang Masuk Valid ✅

Tambahkan validasi di method create() dalam controller:

if (! $this->validate([ 'name' => 'required|min_length[3]', 'email' => 'required|valid_email' ])) { return $this->failValidationErrors($this->validator->getErrors()); }

Dengan validasi ini, API akan menolak data yang tidak sesuai format atau tidak lengkap.

9. Menambahkan Header JSON

Pastikan Format Output Konsisten

Tambahkan header berikut di file Filters/ApiAuth.php jika ingin mengatur semua respon menjadi JSON:

$this->response->setHeader('Content-Type', 'application/json');

10. Keamanan API

Gunakan Token (JWT atau API Key)

Untuk API publik, disarankan menggunakan JWT Authentication 🔐 agar hanya pengguna sah yang bisa mengakses endpoint.

Kamu dapat menambahkan library JWT seperti firebase/php-jwt melalui Composer:

composer require firebase/php-jwt

FAQ (13 Pertanyaan Umum Tentang REST API di CodeIgniter)

  1. Apakah CodeIgniter mendukung REST API secara bawaan? Ya, sejak versi 4 dengan ResourceController.
  2. Format respon API apa yang digunakan? Biasanya JSON.
  3. Bagaimana cara membuat endpoint baru? Tambahkan di controller dan atur di Routes.php.
  4. Apakah bisa pakai JWT? Bisa, menggunakan library firebase/php-jwt.
  5. Bagaimana cara menguji API? Gunakan Postman atau cURL.
  6. Bisa pakai format XML? Ya, ubah properti $format menjadi 'xml'.
  7. Apa itu ResourceController? Controller bawaan CodeIgniter yang dirancang untuk API RESTful.
  8. Bagaimana cara menangani error? Gunakan respond() dan fail() untuk respon standar.
  9. Bisa integrasi dengan frontend? Bisa, seperti React, Vue, atau Flutter.
  10. Bagaimana cara pagination API? Gunakan $model->paginate().
  11. Bisa upload file lewat API? Bisa, dengan $this->request->getFile().
  12. Apa keuntungan pakai REST API? Memudahkan integrasi antar platform.
  13. Bagaimana cara deploy API ke server? Upload ke hosting dan pastikan file .htaccess aktif.

Kesimpulan

Membangun REST API dengan CodeIgniter sangat mudah dan efisien 🚀. Dengan fitur bawaan seperti ResourceController dan respond(), kamu bisa membuat API CRUD hanya dalam beberapa langkah.

Framework ini cocok untuk backend aplikasi modern seperti mobile app, dashboard admin, hingga sistem integrasi antar layanan 🔄.

Disclaimer

Tutorial ini ditulis untuk tujuan edukasi. Gunakan autentikasi dan validasi data yang kuat jika API akan dipublikasikan ke internet 🌐.

Belum ada Komentar untuk "Langkah Demi Langkah Menerapkan REST API di CodeIgniter"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel