REST API memungkinkan aplikasi lain (web, mobile, atau JavaScript) mengambil dan mengirim data ke server Anda dalam format JSON. Ini fondasi aplikasi modern. Artikel ini membahas cara membuat REST API dengan PHP dan MySQL dari nol.

Apa Itu REST API?
REST API adalah “pintu” tempat aplikasi lain meminta data lewat URL (endpoint) dengan method HTTP: GET (ambil data), POST (tambah), PUT (ubah), DELETE (hapus). Balasannya berupa JSON.
Langkah 1: Endpoint Dasar (Mengembalikan JSON)
Buat file api.php. Wajib kirim header JSON:
<?php
require "koneksi.php";
header("Content-Type: application/json");
$data = [];
$hasil = $koneksi->query("SELECT id, nama, harga FROM produk");
while ($row = $hasil->fetch_assoc()) {
$data[] = $row;
}
echo json_encode([
"status" => "success",
"data" => $data
]);
?>
Buka api.php di browser — muncul data dalam bentuk JSON.
Langkah 2: Menangani Method Berbeda
<?php
require "koneksi.php";
header("Content-Type: application/json");
$method = $_SERVER["REQUEST_METHOD"];
if ($method === "GET") {
// ambil data
$hasil = $koneksi->query("SELECT * FROM produk");
echo json_encode($hasil->fetch_all(MYSQLI_ASSOC));
} elseif ($method === "POST") {
// ambil JSON yang dikirim
$input = json_decode(file_get_contents("php://input"), true);
$stmt = $koneksi->prepare("INSERT INTO produk (nama, harga) VALUES (?, ?)");
$stmt->bind_param("si", $input["nama"], $input["harga"]);
$stmt->execute();
http_response_code(201); // 201 = Created
echo json_encode(["status" => "created", "id" => $koneksi->insert_id]);
}
?>
Langkah 3: Status Code yang Benar
| Kode | Arti |
|---|---|
| 200 | OK (berhasil) |
| 201 | Created (data dibuat) |
| 400 | Bad Request (input salah) |
| 404 | Not Found |
| 401 | Unauthorized (butuh login) |
Gunakan http_response_code() agar klien tahu hasilnya.
Tips Keamanan API
- Selalu validasi & prepared statement untuk data yang masuk.
- Lindungi endpoint sensitif dengan API key atau token (mis. JWT).
- Batasi CORS bila hanya aplikasi tertentu yang boleh mengakses.
Kesimpulan
Anda telah membuat REST API PHP dan MySQL yang mengembalikan JSON dan menangani berbagai method HTTP dengan status code yang tepat. API ini bisa dikonsumsi oleh aplikasi JavaScript (fetch/AJAX) maupun aplikasi mobile. Untuk produksi, tambahkan autentikasi token dan validasi ketat.
Referensi: untuk pendalaman, kunjungi dokumentasi resmi PHP (php.net).

