- รับพารามิเตอร์
$api_url
และ$token
(ที่มีค่าเริ่มต้นเป็นnull
) เพื่อใช้ในการส่งคำขอ GET ไปยัง URL ของ API. - สร้าง cURL และตั้งค่าการรับข้อมูลที่คืนมาจากเซิร์ฟเวอร์.
- ตรวจสอบว่ามี Token หรือไม่ ถ้ามี Token จะแนบ Header “Authorization” ในคำขอ GET.
- ส่งคำขอ GET ไปยังเซิร์ฟเวอร์ API และรับข้อมูลที่คืนมา.
- ตรวจสอบว่าการส่งคำขอสำเร็จหรือไม่ หากไม่สำเร็จจะส่งข้อมูลข้อผิดพลาดกลับ.
- หากคำขอสำเร็จและได้รับข้อมูล JSON ที่ถูกต้อง ฟังก์ชันจะแปลง JSON เป็น PHP array และส่งคืนข้อมูลนั้น.
- ปิดการใช้งาน cURL.
<?php
function getApiResponse($api_url, $token = null) {
// สร้าง cURL รองรับคำขอ GET
$curl = curl_init($api_url);
// ตั้งค่าการรับข้อมูลที่คืนมาจากเซิร์ฟเวอร์
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// ถ้ามี Token ให้แนบ Header Authorization ด้วย
if ($token) {
$headers = array(
'Authorization: Bearer ' . $token,
// แนบเฮดเดอร์อื่น ๆ ตามความจำเป็น
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
}
// ส่งคำขอ GET ไปยังเซิร์ฟเวอร์และรับข้อมูลที่คืนมา
$response = curl_exec($curl);
// ตรวจสอบการส่งคำขอสำเร็จหรือไม่
if ($response === false) {
return array('error' => 'Error: ' . curl_error($curl));
} else {
// แปลง JSON ที่ได้รับเป็น PHP array
$data = json_decode($response, true);
if ($data === null) {
return array('error' => 'Error decoding JSON');
}
return $data;
}
// ปิดการใช้งาน cURL
curl_close($curl);
}
// เรียกใช้ฟังก์ชันเพื่อรับข้อมูล JSON
$api_url = 'https://example.com/api/endpoint';
$token = 'YourTokenHere'; // เปลี่ยนเป็น Token จริง
$response = getApiResponse($api_url, $token);
if (isset($response['error'])) {
echo 'Error: ' . $response['error'];
} else {
// ประมวลผลข้อมูล JSON ที่ได้รับ
var_dump($response);
}
?>
ดังนั้นฟังก์ชัน getApiResponse
นี้สามารถใช้สำหรับการส่งคำขอ GET ไปยัง API URL และการรับข้อมูล JSON ที่คืนมา โดยสามารถใช้ Token ในการยืนยันตัวตนหรือไม่ก็ได้ และสามารถจัดการข้อผิดพลาดที่เกิดขึ้นในการส่งคำขอหรือการแปลง JSON ด้วยความสะดวกด้วยคำสั่ง if
เพื่อตรวจสอบว่ามีข้อผิดพลาดหรือไม่ และแสดงข้อความผิดพลาดหรือประมวลผลข้อมูลตามที่เหมาะสม.