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.