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 dataGET /api/user/{id}→ ambil data berdasarkan IDPOST /api/user→ tambahkan data baruPUT /api/user/{id}→ update dataDELETE /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:
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | http://localhost:8080/api/user | Menampilkan semua user |
| POST | http://localhost:8080/api/user | Menambahkan user baru |
| PUT | http://localhost:8080/api/user/1 | Update user dengan ID 1 |
| DELETE | http://localhost:8080/api/user/1 | Hapus 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)
- Apakah CodeIgniter mendukung REST API secara bawaan? Ya, sejak versi 4 dengan
ResourceController. - Format respon API apa yang digunakan? Biasanya
JSON. - Bagaimana cara membuat endpoint baru? Tambahkan di controller dan atur di
Routes.php. - Apakah bisa pakai JWT? Bisa, menggunakan library
firebase/php-jwt. - Bagaimana cara menguji API? Gunakan Postman atau cURL.
- Bisa pakai format XML? Ya, ubah properti
$formatmenjadi'xml'. - Apa itu ResourceController? Controller bawaan CodeIgniter yang dirancang untuk API RESTful.
- Bagaimana cara menangani error? Gunakan
respond()danfail()untuk respon standar. - Bisa integrasi dengan frontend? Bisa, seperti React, Vue, atau Flutter.
- Bagaimana cara pagination API? Gunakan
$model->paginate(). - Bisa upload file lewat API? Bisa, dengan
$this->request->getFile(). - Apa keuntungan pakai REST API? Memudahkan integrasi antar platform.
- Bagaimana cara deploy API ke server? Upload ke hosting dan pastikan file
.htaccessaktif.
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