Lewati ke konten utama

API Development dengan PHP

API (Application Programming Interface) memungkinkan aplikasi untuk saling berkomunikasi. PHP dapat digunakan untuk membangun API yang cepat dan efisien.

1. Mengapa Menggunakan PHP untuk API?

  • Mudah dikembangkan dengan framework seperti Laravel, Slim, atau Lumen.
  • Mendukung format data populer seperti JSON dan XML.
  • Performa yang baik dengan caching dan optimasi yang tepat.

2. Membuat API Sederhana dengan PHP Native

Buat file api.php:

<?php
header("Content-Type: application/json");
$data = ["message" => "Hello, API!"];
echo json_encode($data);
?>

Jalankan dengan server PHP:

php -S localhost:8000

Akses API di browser: http://localhost:8000/api.php

3. Membuat API dengan Laravel

Gunakan Laravel untuk API yang lebih kompleks.

composer create-project --prefer-dist laravel/laravel myapi

Buat controller API:

php artisan make:controller ApiController

Tambahkan endpoint di routes/api.php:

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::get('/hello', function () {
return response()->json(['message' => 'Hello, Laravel API!']);
});

Jalankan server Laravel:

php artisan serve

Akses API di: http://127.0.0.1:8000/api/hello

4. Autentikasi API dengan JWT

Gunakan JWT (JSON Web Token) untuk autentikasi API:

composer require firebase/php-jwt

Contoh pembuatan token:

use Firebase\JWT\JWT;

$secret_key = "my_secret_key";
$payload = ["user_id" => 1, "exp" => time() + 3600];
$jwt = JWT::encode($payload, $secret_key, 'HS256');

echo json_encode(["token" => $jwt]);

5. Menggunakan Middleware untuk Proteksi API

Tambahkan middleware di Laravel:

php artisan make:middleware AuthJWT

Edit AuthJWT.php:

use Firebase\JWT\JWT;
use Firebase\JWT\Key;
use Closure;

class AuthJWT {
public function handle($request, Closure $next) {
$token = $request->header('Authorization');
if (!$token) return response()->json(['error' => 'Unauthorized'], 401);

try {
$decoded = JWT::decode($token, new Key("my_secret_key", 'HS256'));
} catch (Exception $e) {
return response()->json(['error' => 'Invalid token'], 401);
}

return $next($request);
}
}

Tambahkan middleware di Kernel.php:

protected $routeMiddleware = [
'auth.jwt' => \App\Http\Middleware\AuthJWT::class,
];

Gunakan middleware pada route:

Route::get('/user', function () {
return response()->json(['user' => 'John Doe']);
})->middleware('auth.jwt');

6. Kesimpulan

  • API dengan PHP dapat dibuat menggunakan framework atau native PHP.
  • Laravel adalah pilihan terbaik untuk API yang kompleks.
  • Gunakan JWT untuk autentikasi yang aman.
  • Middleware membantu melindungi API dari akses yang tidak sah.