1. Xây dựng RESTful API Endpoint bằng PHP Thuần
Để giao tiếp giữa Client và Server (API), Server PHP cần thiết lập Header trả về định dạng application/json và cho phép cấu hình CORS truy cập từ xa.
Ví dụ mã nguồn:
<?php
// Cho phép mọi nguồn truy cập (CORS)
header("Access-Control-Allow-Origin: *");
// Định dạng nội dung trả về là JSON kèm mã UTF-8
header("Content-Type: application/json; charset=UTF-8");
$response = [
"status" => "success",
"message" => "Kết nối dữ liệu API thành công!",
"data" => [
"shop_name" => "Aquatic Shop Nha Trang",
"system" => "Active"
]
];
// Xuất dữ liệu cấu trúc mảng thành chuỗi JSON
echo json_encode($response, JSON_UNESCAPED_UNICODE);
?>
Khi Client gửi dữ liệu lên API bằng phương thức POST dưới dạng JSON body, PHP không thể đọc bằng mảng $_POST thông thường mà phải đọc luồng dữ liệu thô từ php://input.
Ví dụ mã nguồn:
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
// Đọc dữ liệu thô đầu vào từ Request Body
$json_data = file_get_contents("php://input");
// Chuyển đổi từ chuỗi JSON sang đối tượng PHP
$data = json_decode($json_data);
if (!empty($data->product_name) && !empty($data->price)) {
// Thực hiện logic xử lý hoặc lưu Database tại đây...
http_response_code(201); // Created
echo json_encode(["message" => "Đã thêm sản phẩm thành công."], JSON_UNESCAPED_UNICODE);
} else {
http_response_code(400); // Bad Request
echo json_encode(["message" => "Dữ liệu đầu vào không hợp lệ!"], JSON_UNESCAPED_UNICODE);
}
?>
Khi viết API danh sách, việc tối ưu truy vấn bằng cơ chế phân trang bằng từ khóa LIMIT và OFFSET là bắt buộc để hệ thống không bị quá tải.
Ví dụ mã nguồn:
<?php
// Lấy số trang hiện tại từ tham số URL, mặc định là trang 1
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$records_per_page = 10; // Số bản ghi trên mỗi trang
$offset = ($page - 1) * $records_per_page;
// Câu lệnh SQL động thực hiện an toàn qua PDO
$sql = "SELECT id, name, price FROM products ORDER BY id DESC LIMIT :limit OFFSET :offset";
$stmt = $conn->prepare($sql);
// Ép kiểu dữ liệu INT cho tham số phân trang
$stmt->bindValue(':limit', $records_per_page, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($products);
?>
2. Mô phỏng Log API Endpoints Lưu Trữ Local (IndexedDB)
Ghi lại nhật ký (Log) phân tích cấu trúc các phương thức Request Method của API phục vụ quá trình debug ứng dụng.
Quản Lý Lịch Sử Gọi API
| Mã Log | Đường Dẫn API Endpoint | HTTP Method | Thao Tác |
|---|



0 Reviews