Membuat dan mengonsumsi API sederhana dengan PHP: Difference between revisions
From OnnoCenterWiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
| 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 04: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 :) ...