Difference between revisions of "Membuat dan mengonsumsi API sederhana dengan PHP"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
Line 1: | Line 1: | ||
− | + | ==Tujuan Pembelajaran== | |
+ | * Memahami konsep dasar REST API. | ||
+ | * Membangun API sederhana dengan PHP (tanpa framework). | ||
+ | * Mengonsumsi (mengakses) API menggunakan PHP dan tools seperti `curl`. | ||
+ | * Menjalankan API di server lokal Ubuntu 24.04 (menggunakan Apache). | ||
− | + | ==Persiapan Lingkungan== | |
− | + | '''1. Install Apache, PHP, dan cURL''' | |
− | + | sudo apt update | |
− | - | + | sudo apt install apache2 php libapache2-mod-php php-curl |
− | - | ||
− | - | ||
− | |||
− | + | '''2. Buat Folder Project''' | |
− | + | sudo mkdir -p /var/www/html/simple-api | |
+ | sudo chown -R $USER:$USER /var/www/html/simple-api | ||
+ | cd /var/www/html/simple-api | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Bagian 1: Membuat API Sederhana== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | '''1.1 Struktur Direktori''' | |
− | + | simple-api/ | |
+ | ├── api.php | ||
+ | └── data.json | ||
− | + | '''1.2 Isi `data.json`''' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <pre> | |
− | + | [ | |
− | [ | + | {"id": 1, "name": "Alice"}, |
− | + | {"id": 2, "name": "Bob"}, | |
− | + | {"id": 3, "name": "Charlie"} | |
− | + | ] | |
− | ] | + | </pre> |
− | |||
− | + | '''1.3 Isi `api.php`''' | |
− | |||
− | |||
− | |||
− | $data = json_decode(file_get_contents('data.json'), true); | + | <pre> |
+ | <?php | ||
+ | header('Content-Type: application/json'); | ||
+ | |||
+ | $data = json_decode(file_get_contents('data.json'), true); | ||
+ | |||
+ | if ($_SERVER['REQUEST_METHOD'] === 'GET') { | ||
+ | if (isset($_GET['id'])) { | ||
+ | $id = intval($_GET['id']); | ||
+ | foreach ($data as $item) { | ||
+ | if ($item['id'] === $id) { | ||
+ | echo json_encode($item); | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | echo json_encode(["error" => "Data not found"]); | ||
+ | } else { | ||
+ | echo json_encode($data); | ||
+ | } | ||
+ | } else { | ||
+ | echo json_encode(["error" => "Method not supported"]); | ||
+ | } | ||
+ | </pre> | ||
− | + | '''1.4 Akses API via Browser''' | |
− | + | * Semua data: [http://localhost/simple-api/api.php](http://localhost/simple-api/api.php) | |
− | + | * Data berdasarkan ID: [http://localhost/simple-api/api.php?id=2](http://localhost/simple-api/api.php?id=2) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Bagian 2: Mengonsumsi API dengan PHP== | |
− | + | '''2.1 File: `consume.php`''' | |
− | + | <pre> | |
− | + | <?php | |
− | <?php | + | function getData($url) { |
− | function getData($url) { | + | $ch = curl_init(); |
− | + | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
− | + | curl_setopt($ch, CURLOPT_URL, $url); | |
− | + | $result = curl_exec($ch); | |
− | + | curl_close($ch); | |
− | + | return json_decode($result, true); | |
− | + | } | |
− | } | + | |
+ | $apiUrl = "http://localhost/simple-api/api.php"; | ||
+ | $data = getData($apiUrl); | ||
+ | |||
+ | echo "<h2>Daftar User</h2><ul>"; | ||
+ | foreach ($data as $user) { | ||
+ | echo "<li>{$user['id']} - {$user['name']}</li>"; | ||
+ | } | ||
+ | echo "</ul>"; | ||
+ | </pre> | ||
− | + | '''2.2 Jalankan di browser''' | |
− | + | * Simpan di `/var/www/html/simple-api/consume.php` | |
+ | * Akses di browser: [http://localhost/simple-api/consume.php](http://localhost/simple-api/consume.php) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Bonus: Uji Coba dengan Terminal== | |
− | |||
− | |||
− | -- | + | curl http://localhost/simple-api/api.php |
+ | curl http://localhost/simple-api/api.php?id=2 | ||
− | + | ==Kesimpulan== | |
− | `` | + | * Kamu telah berhasil membuat API sederhana menggunakan file JSON. |
− | + | * API ini hanya mendukung method `GET`. | |
− | curl | + | * Kamu juga telah belajar cara mengambil data API menggunakan PHP (`curl`). |
− | |||
− | + | Coba membuat versi POST, PUT, DELETE :) ... | |
− | + | ==Pranala Menarik== | |
− | |||
− | |||
− | |||
− | + | * [[Web Programming]] | |
− | |||
− |
Latest revision as of 11:40, 7 April 2025
Tujuan Pembelajaran
- Memahami konsep dasar REST API.
- Membangun API sederhana dengan PHP (tanpa framework).
- Mengonsumsi (mengakses) API menggunakan PHP dan tools seperti `curl`.
- Menjalankan API di server lokal Ubuntu 24.04 (menggunakan Apache).
Persiapan Lingkungan
1. Install Apache, PHP, dan cURL
sudo apt update sudo apt install apache2 php libapache2-mod-php php-curl
2. Buat Folder Project
sudo mkdir -p /var/www/html/simple-api sudo chown -R $USER:$USER /var/www/html/simple-api cd /var/www/html/simple-api
Bagian 1: Membuat API Sederhana
1.1 Struktur Direktori
simple-api/ ├── api.php └── data.json
1.2 Isi `data.json`
[ {"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}, {"id": 3, "name": "Charlie"} ]
1.3 Isi `api.php`
<?php header('Content-Type: application/json'); $data = json_decode(file_get_contents('data.json'), true); if ($_SERVER['REQUEST_METHOD'] === 'GET') { if (isset($_GET['id'])) { $id = intval($_GET['id']); foreach ($data as $item) { if ($item['id'] === $id) { echo json_encode($item); exit; } } echo json_encode(["error" => "Data not found"]); } else { echo json_encode($data); } } else { echo json_encode(["error" => "Method not supported"]); }
1.4 Akses API via Browser
- Semua data: [1](http://localhost/simple-api/api.php)
- Data berdasarkan ID: [2](http://localhost/simple-api/api.php?id=2)
Bagian 2: Mengonsumsi API dengan PHP
2.1 File: `consume.php`
<?php function getData($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); curl_close($ch); return json_decode($result, true); } $apiUrl = "http://localhost/simple-api/api.php"; $data = getData($apiUrl); echo "<h2>Daftar User</h2><ul>"; foreach ($data as $user) { echo "<li>{$user['id']} - {$user['name']}</li>"; } echo "</ul>";
2.2 Jalankan di browser
- Simpan di `/var/www/html/simple-api/consume.php`
- Akses di browser: [3](http://localhost/simple-api/consume.php)
Bonus: Uji Coba dengan Terminal
curl http://localhost/simple-api/api.php curl http://localhost/simple-api/api.php?id=2
Kesimpulan
- Kamu telah berhasil membuat API sederhana menggunakan file JSON.
- API ini hanya mendukung method `GET`.
- Kamu juga telah belajar cara mengambil data API menggunakan PHP (`curl`).
Coba membuat versi POST, PUT, DELETE :) ...