Trong thế giới hiện đại, nơi mà ứng dụng web, mobile và hệ thống phân tán cần giao tiếp với nhau mọi lúc, mọi nơi – RESTful API chính là chiếc cầu nối vững chắc. Dù có nhiều framework hiện đại, việc tạo API bằng PHP thuần vẫn là một kỹ năng quan trọng và tinh gọn, đặc biệt khi bạn cần kiểm soát chi tiết và tối ưu tài nguyên hệ thống.
🔄 REST là gì và vì sao nên dùng?
REST (Representational State Transfer) là một chuẩn kiến trúc cho phép xây dựng các API nhẹ, dễ mở rộng và dễ tích hợp. Trong REST:
- Mỗi tài nguyên (ví dụ: người dùng, bài viết) có một đường dẫn duy nhất
- Các hành động như
GET,POST,PUT,DELETEđại diện cho các thao tác tương ứng - Dữ liệu thường được truyền dưới dạng JSON
RESTful API là nền tảng để frontend (React, Vue), mobile app (iOS, Android), hoặc bên thứ ba có thể tương tác với hệ thống PHP của bạn mà không cần giao diện.
🔌 Cấu trúc đơn giản cho API PHP
Ví dụ đơn giản: một API quản lý danh sách sản phẩm.
$request_method = $_SERVER["REQUEST_METHOD"];
switch($request_method) {
case 'GET':
// Lấy danh sách sản phẩm hoặc sản phẩm cụ thể
break;
case 'POST':
// Tạo sản phẩm mới
break;
case 'PUT':
// Cập nhật sản phẩm
break;
case 'DELETE':
// Xóa sản phẩm
break;
default:
http_response_code(405);
echo json_encode(["message" => "Phương thức không được hỗ trợ"]);
}
Bạn có thể trích ID từ URL bằng cách sử dụng .htaccess hoặc $_GET['id'], và đọc dữ liệu JSON từ thân yêu cầu:
$data = json_decode(file_get_contents("php://input"), true);
🗃️ Phản hồi định dạng JSON
API cần trả dữ liệu ở định dạng dễ xử lý. PHP có thể xuất JSON dễ dàng:
header("Content-Type: application/json");
echo json_encode([
"status" => "success",
"data" => $sanpham
]);
Bạn cũng nên thiết lập mã trạng thái HTTP tương ứng:
http_response_code(200); // OK
http_response_code(201); // Created
http_response_code(404); // Not Found
http_response_code(500); // Server Error
🛡️ Bảo mật cơ bản cho API
Dù đơn giản, API cũng cần được bảo vệ:
- Token xác thực (API Key hoặc JWT) để hạn chế truy cập
- Giới hạn IP truy cập nếu cần
- Chống brute-force bằng giới hạn tốc độ (rate limiting)
- Kiểm tra
Content-Typeđầu vào, tránh lỗi hoặc tấn công
Ví dụ xác thực đơn giản:
$headers = getallheaders();
if ($headers['Authorization'] !== 'Bearer your-secret-token') {
http_response_code(401);
echo json_encode(["message" => "Không có quyền truy cập"]);
exit;
}
🧪 Kiểm thử API với Postman
Trước khi đưa API vào sử dụng thực tế, bạn nên kiểm thử với các công cụ như:
- Postman: dễ dùng, có thể lưu bộ API, test tự động
- Curl: dòng lệnh đơn giản để gửi yêu cầu API
- Insomnia: công cụ thay thế Postman, nhiều tính năng nâng cao
Ví dụ dùng curl:
curl -X POST http://yourdomain.com/api/products \
-H "Content-Type: application/json" \
-d '{"name":"Bút bi","price":10000}'
🧩 Mở rộng: Kết hợp với Frontend & App
Sau khi có RESTful API hoạt động, bạn có thể tích hợp với:
- React / Vue / Angular: fetch dữ liệu và hiển thị động
- Mobile app Flutter hoặc React Native
- Các hệ thống quản lý như ERP, LMS, CRM…
API chính là “trái tim” để mọi hệ thống có thể phối hợp hiệu quả và thống nhất dữ liệu.
🧠 Kết luận
Dù có nhiều framework hiện đại như Laravel, Symfony, việc nắm vững cách tạo RESTful API bằng PHP thuần vẫn mang lại cái nhìn sâu sắc và giúp bạn tối ưu hóa hiệu suất trong các dự án nhỏ hoặc cần sự kiểm soát chặt chẽ. Đây là bước đầu không thể thiếu nếu bạn muốn xây dựng hệ thống mở, dễ tích hợp và mở rộng trong tương lai.

