Membuat RESTful API Dengan PHP Tanpa Framework
Pada artikel ini, kita akan membahas tentang cara membuat RESTful API dengan PHP tanpa menggunakan framework apapun. RESTful API adalah suatu jenis API yang menggunakan metode HTTP seperti GET, POST, PUT, dan DELETE untuk melakukan operasi CRUD (Create, Read, Update, Delete) terhadap data.
Mengapa Membuat RESTful API Tanpa Framework?
Mungkin Anda bertanya-tanya, mengapa kita harus membuat RESTful API tanpa framework? Jawabannya adalah:
- Keseluruhan Kontrol: Dengan tidak menggunakan framework, kita memiliki kontrol penuh atas kode yang kita tulis. Kita tidak harus terikat dengan struktur dan pola yang telah ditentukan oleh framework.
- Kemudahan Integrasi: RESTful API dapat diintegrasikan dengan mudah dengan aplikasi lain, tidak peduli bahasa pemrograman apa yang digunakan.
- Kemampuan Skalabilitas: Dengan tidak menggunakan framework, kita dapat membuat RESTful API yang lebih skalabel dan dapat berjalan di lingkungan yang berbeda-beda.
Membuat RESTful API dengan PHP
Sebelum kita mulai membuat RESTful API, pastikan Anda memiliki PHP yang terinstal di komputer Anda. Berikut adalah langkah-langkah untuk membuat RESTful API dengan PHP:
Langkah 1: Membuat Struktur Proyek
Buatlah direktori baru untuk proyek Anda, misalnya rest-api
. Dalam direktori tersebut, buatlah beberapa file dan direktori berikut:
index.php
config.php
models/
controllers/
routes/
Langkah 2: Membuat Konfigurasi Database
Buatlah file config.php
untuk menyimpan konfigurasi database Anda.
// config.php
define('DB_HOST', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_NAME', 'database_name');
$koneksi = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
if ($koneksi->connect_error)
die("Koneksi gagal: " . $koneksi->connect_error);
Langkah 3: Membuat Model
Buatlah file User.php
dalam direktori models/
untuk membuat model pengguna.
// models/User.php
class User
private $koneksi;
public function __construct($koneksi)
$this->koneksi = $koneksi;
public function getAllUsers()
$query = "SELECT * FROM users";
$result = $this->koneksi->query($query);
if (!$result)
die("Query gagal: " . $this->koneksi->error);
$users = array();
while ($row = $result->fetch_assoc())
$users[] = $row;
return $users;
public function getUserById($id)
$query = "SELECT * FROM users WHERE id = '$id'";
$result = $this->koneksi->query($query);
if (!$result)
die("Query gagal: " . $this->koneksi->error);
$user = $result->fetch_assoc();
return $user;
public function createUser($name, $email)
$query = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
$result = $this->koneksi->query($query);
if (!$result)
die("Query gagal: " . $this->koneksi->error);
return array('message' => 'Pengguna berhasil dibuat');
public function updateUser($id, $name, $email)
$query = "UPDATE users SET name = '$name', email = '$email' WHERE id = '$id'";
$result = $this->koneksi->query($query);
if (!$result)
die("Query gagal: " . $this->koneksi->error);
return array('message' => 'Pengguna berhasil diupdate');
public function deleteUser($id)
$query = "DELETE FROM users WHERE id = '$id'";
$result = $this->koneksi->query($query);
if (!$result)
die("Query gagal: " . $this->koneksi->error);
return array('message' => 'Pengguna berhasil dihapus');
Langkah 4: Membuat Controller
Buatlah file UserController.php
dalam direktori controllers/
untuk membuat controller pengguna.
// controllers/UserController.php
class UserController
private $user;
public function __construct($koneksi)
$this->user = new User($koneksi);
public function getAllUsers()
return $this->user->getAllUsers();
public function getUserById($id)
return $this->user->getUserById($id);
public function createUser($name, $email)
return $this->user->createUser($name, $email);
public function updateUser($id, $name, $email)
return $this->user->updateUser($id, $name, $email);
public function deleteUser($id)
return $this->user->deleteUser($id);
Langkah 5: Membuat Rute
Buatlah file routes.php
untuk membuat rute API.
// routes.php
$routes = array(
'GET /users' => 'UserController::getAllUsers',
'GET /users/:id' => 'UserController::getUserById',
'POST /users' => 'UserController::createUser',
'PUT /users/:id' => 'UserController::updateUser',
'DELETE /users/:id' => 'UserController::deleteUser'
);
Langkah 6: Membuat Index
Buatlah file index.php
untuk membuat index API.
// index.php
require_once 'config.php';
require_once 'models/User.php';
require_once 'controllers/UserController.php';
require_once 'routes.php';
$koneksi = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
if ($koneksi->connect_error)
die("Koneksi gagal: " . $koneksi->connect_error);
$userController = new UserController($koneksi);
$uri = $_SERVER['REQUEST_URI'];
$method = $_SERVER['REQUEST_METHOD'];
foreach ($routes as $route => $function)
$routeParts = explode('/', $route);
$uriParts = explode('/', $uri);
if ($routeParts[0] == $uriParts[0] && $routeParts[1] == $uriParts[1] && $method == 'GET')
if (count($routeParts) == 3)
$id = $uriParts[2];
echo json_encode($userController->$function($id));
else
echo json_encode($userController->$function());
elseif ($routeParts[0] == $uriParts[0] && $method == 'POST')
$name = $_POST['name'];
$email = $_POST['email'];
echo json_encode($userController->$function($name, $email));
elseif ($routeParts[0] == $uriParts[0] && $method == 'PUT')
$id = $uriParts[2];
$name = $_POST['name'];
$email = $_POST['email'];
echo json_encode($userController->$function($id, $name, $email));
elseif ($routeParts[0] == $uriParts[0] && $method == 'DELETE')
$id = $uriParts[2];
echo json_encode($userController->$function($id));
Menguji RESTful API
Untuk menguji RESTful API, kita dapat menggunakan alat seperti Postman atau curl. Berikut adalah contoh cara menguji RESTful API menggunakan curl:
GET /users
:curl -X GET http://localhost/rest-api/index.php/users
GET /users/:id
:curl -X GET http://localhost/rest-api/index.php/users/1
POST /users
:curl -X POST -H "Content-Type: application/json" -d '"name":"John Doe","email":"john@example.com"' http://localhost/rest-api/index.php/users
PUT /users/:id
:curl -X PUT -H "Content-Type: application/json" -d '"name":"Jane Doe","email":"jane@example.com"' http://localhost/rest-api/index.php/users/1
DELETE /users/:id
:curl -X DELETE http://localhost/rest-api/index.php/users/1
Dengan demikian, kita telah berhasil membuat RESTful API dengan PHP tanpa menggunakan framework.