Detail Blog

Gambar ilustrasi: REST API PHP Native: Panduan Lengkap PDO, MySQL & JWT

REST API PHP Native: Panduan Lengkap PDO, MySQL & JWT

  • AkangWeb
  • 0 Komentar
  • 36 View

Di era digital saat ini, aplikasi web dan mobile membutuhkan cara yang cepat dan efisien untuk berkomunikasi dengan server. Salah satu solusi terbaik adalah dengan menggunakan REST API. Jika kamu seorang developer PHP yang ingin membuat REST API tanpa ribet menggunakan framework besar, maka panduan ini sangat cocok untukmu.

Daftar Isi (hide)

Dalam tutorial ini, kita akan membahas REST API PHP Native — yaitu membuat API menggunakan PHP murni, lengkap dengan koneksi database MySQL menggunakan PDO dan autentikasi aman dengan JWT. Pendekatan ini sangat cocok untuk kamu yang ingin belajar dasar REST API secara praktis dan langsung bisa diterapkan.

Yuk, kita mulai langkah demi langkah membangun REST API sederhana namun powerful dengan PHP Native!

Apa Itu REST API dalam PHP?

Pengertian REST API

REST API (Representational State Transfer Application Programming Interface) adalah sebuah arsitektur komunikasi antar sistem berbasis HTTP yang sangat populer digunakan dalam pengembangan aplikasi web dan mobile. Dengan REST API, aplikasi dapat berinteraksi tanpa harus bergantung pada bahasa pemrograman yang sama.

Fungsi REST API dalam Web Development

Dalam dunia pengembangan web, REST API berperan sebagai jembatan antara frontend dan backend. Misalnya, ketika kamu mengakses aplikasi mobile yang menampilkan data produk, itu kemungkinan besar mengambil data dari REST API di server.

Konsep Dasar REST

Representational State Transfer (REST)

REST adalah standar arsitektur yang menggunakan protokol HTTP. Setiap resource (data) direpresentasikan dalam format tertentu (biasanya JSON), dan dapat diakses melalui URL tertentu.

HTTP Method (GET, POST, PUT, DELETE)

GET

Digunakan untuk mengambil data dari server.
Contoh: GET /api/produk

POST

Digunakan untuk menambahkan data baru.
Contoh: POST /api/produk

PUT

Digunakan untuk memperbarui data yang sudah ada.
Contoh: PUT /api/produk/1

DELETE

Digunakan untuk menghapus data.
Contoh: DELETE /api/produk/1

Kenapa Menggunakan REST API dengan PHP?

Kemudahan dalam Integrasi

PHP adalah bahasa server-side yang sangat populer. REST API memungkinkan integrasi mudah antara aplikasi PHP dan sistem lain seperti React, Android, Flutter, dll.

Skalabilitas dan Kinerja

Dengan REST API, aplikasi dapat dengan mudah diskalakan, baik secara vertikal maupun horizontal. Kamu bisa memisahkan backend dan frontend dengan mudah.

Dukungan Framework PHP

Framework modern seperti Laravel, Slim, dan Lumen memberikan kemudahan dalam membangun REST API secara efisien dan cepat.

Tools & Library yang Dibutuhkan

PHP Built-in Server

Cukup jalankan:

php -S localhost:8000

Postman

Digunakan untuk mengetes endpoint REST API yang kamu buat.

Composer

PHP dependency manager untuk mengelola library dan autoloading.

Slim Framework atau Lumen

Framework ringan yang cocok untuk membuat REST API dengan cepat.

Struktur REST API di PHP

/api
  ├── config/
  ├── controller/
  ├── model/
  ├── routes/
  ├── public/
  └── index.php
  • routes/: Menyimpan file routing.

  • controller/: Logic bisnis atau pemrosesan request.

  • model/: Interaksi dengan database.

Membuat REST API Sederhana dengan PHP

Persiapan Database (MySQL)

CREATE TABLE produk (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nama VARCHAR(100),
  harga INT
);

Koneksi Database dengan PDO

$pdo = new PDO("mysql:host=localhost;dbname=db_api", "root", "");

Menampilkan Data (GET)

$stmt = $pdo->query("SELECT * FROM produk");
echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));

Menambahkan Data (POST)

$data = json_decode(file_get_contents("php://input"));
$stmt = $pdo->prepare("INSERT INTO produk (nama, harga) VALUES (?, ?)");
$stmt->execute([$data->nama, $data->harga]);

Mengedit Data (PUT)

parse_str(file_get_contents("php://input"), $_PUT);
$stmt = $pdo->prepare("UPDATE produk SET nama=?, harga=? WHERE id=?");
$stmt->execute([$_PUT['nama'], $_PUT['harga'], $_PUT['id']]);

Menghapus Data (DELETE)

parse_str(file_get_contents("php://input"), $_DELETE);
$stmt = $pdo->prepare("DELETE FROM produk WHERE id=?");
$stmt->execute([$_DELETE['id']]);

Menangani Error dan Validasi

Validasi Input

Sebelum menyimpan data, pastikan field tidak kosong.

if (empty($data->nama) || empty($data->harga)) {
  http_response_code(400);
  echo json_encode(["message" => "Field tidak boleh kosong"]);
  exit;
}

Handling Error Response

try {
  // logic
} catch (Exception $e) {
  http_response_code(500);
  echo json_encode(["error" => $e->getMessage()]);
}

Menggunakan JWT untuk Autentikasi API

Apa Itu JWT?

JWT (JSON Web Token) adalah metode aman untuk mengautentikasi pengguna melalui token digital yang dikirim lewat header HTTP.

Instalasi dan Konfigurasi JWT

composer require firebase/php-jwt

Implementasi Login API

Saat user login, generate token dan kirim ke client:

$token = JWT::encode(['id' => $user_id], 'secret_key', 'HS256');

Best Practice dalam Pengembangan REST API

  • Gunakan format JSON untuk response

  • Selalu beri status code HTTP yang sesuai

  • Gunakan endpoint dengan format yang konsisten, misalnya /api/users

REST API vs SOAP API

Perbandingan Lengkap

REST SOAP
Lebih ringan Lebih kompleks
Menggunakan JSON Menggunakan XML
Mudah digunakan Butuh WSDL

Mana yang Lebih Cocok?

Kalau kamu membangun aplikasi modern (mobile/web), REST API jelas pilihan yang lebih fleksibel dan cepat.

REST API dalam Penggunaan Nyata

Integrasi dengan Aplikasi Mobile

REST API memungkinkan aplikasi Android/iOS untuk mengambil dan mengirim data ke server dengan cepat.

REST API untuk Aplikasi SPA

Framework seperti Vue.js atau React sangat cocok dipasangkan dengan REST API sebagai backend-nya.

REST API dengan Framework Populer

Laravel API Resources

Laravel menyediakan resource API khusus dengan respon yang terstruktur.

Lumen untuk Microservices

Lumen adalah versi ringan dari Laravel yang ideal untuk membangun REST API cepat dan kecil.

Slim Framework

Salah satu microframework PHP terbaik untuk REST API.

Keamanan REST API

HTTPS Wajib

Gunakan SSL/TLS agar data terenkripsi selama proses komunikasi.

Rate Limiting

Batasi jumlah request dari satu IP untuk menghindari abuse.

CORS

Aktifkan Cross-Origin Resource Sharing agar API bisa diakses dari frontend berbeda domain.

Deployment REST API ke Server

Shared Hosting vs VPS

Untuk proyek besar, VPS adalah pilihan terbaik karena kamu punya kontrol penuh.

Setting .htaccess dan Apache/Nginx

Gunakan .htaccess untuk mengatur URL rewriting agar endpoint bisa diakses dengan rapi.

👉 Baca Juga:

Kesimpulan

REST API dengan PHP adalah fondasi penting dalam dunia modern pengembangan web. Dengan memahami konsep, tools, dan praktik terbaiknya, kamu bisa membangun aplikasi yang kuat, cepat, dan mudah untuk dikembangkan lebih lanjut. Apakah kamu pemula atau sudah pro, REST API akan selalu jadi bagian penting dari toolkit developer.

FAQ (Pertanyaan yang Sering Diajukan)

  • 1. Apakah REST API hanya bisa dibuat dengan PHP?
    Tidak, bisa dibuat dengan bahasa lain seperti Node.js, Python, Java, dll.
  • 2. Apakah REST API harus menggunakan JSON?
    Tidak harus, tapi JSON adalah format yang paling umum digunakan karena ringan dan mudah dibaca.
  • 3. Apakah saya harus selalu menggunakan framework?
    Tidak, kamu bisa membuat REST API dengan PHP murni, tapi framework mempermudah banyak hal.
  • 4. Apa bedanya antara REST API dan GraphQL?
    REST API mengakses resource per endpoint, GraphQL memungkinkan query data yang lebih fleksibel dalam satu endpoint.
  • 5. Bagaimana cara mengamankan REST API?
    Gunakan HTTPS, JWT untuk autentikasi, validasi input, dan implementasikan rate limiting.

 

Author Avatar

AkangWeb

Saya adalah web developer, yang berfokus pada pengembangan website bisnis dan profil perusahaan menggunakan PHP murni. Berpengalaman membangun tampilan yang menarik dan profesional serta fungsi-fungsi dasar untuk kebutuhan UMKM dan pelaku usaha. Terbuka untuk kerja freelance, remote, atau kolaborasi jangka panjang.

Comments

Please log in to post a comment.