API Yêu thích sản phẩm
API này cho phép thêm hoặc xóa sản phẩm khỏi danh sách yêu thích của người dùng.
Ví dụ minh họa: Thao tác yêu thích sản phẩm
Ví dụ minh họa: Thao tác yêu thích sản phẩm
1. Thêm sản phẩm vào yêu thích
POST https://api.socdo.vn/v1/add_favorite
Các trường bắt buộc:
- user_id: ID người dùng
- product_id: ID sản phẩm
Dữ liệu mẫu thêm yêu thích (JSON):
{
"user_id": 123,
"product_id": 456
}
2. Xóa sản phẩm khỏi yêu thích
DELETE https://api.socdo.vn/v1/add_favorite
Dữ liệu mẫu xóa yêu thích (JSON):
{
"user_id": 123,
"product_id": 456
}
Ví dụ thêm yêu thích bằng cURL:
curl -X POST "https://api.socdo.vn/v1/add_favorite" -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d '{"user_id": 123, "product_id": 456}'
Ví dụ thêm yêu thích bằng PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.socdo.vn/v1/add_favorite");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer <token>"
]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"user_id" => 123,
"product_id" => 456
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ví dụ xóa yêu thích bằng PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.socdo.vn/v1/add_favorite");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer <token>"
]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"user_id" => 123,
"product_id" => 456
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Dữ liệu trả về mẫu (Thêm yêu thích):
{
"success": true,
"message": "Thêm sản phẩm vào danh sách yêu thích thành công",
"data": {
"favorite_id": 789,
"user_id": 123,
"product_id": 456,
"product_name": "iPhone 15 Pro Max"
}
}
Dữ liệu trả về mẫu (Xóa yêu thích):
{
"success": true,
"message": "Xóa sản phẩm khỏi danh sách yêu thích thành công",
"data": {
"user_id": 123,
"product_id": 456,
"action": "removed"
}
}
Lỗi phổ biến:
// Sản phẩm đã yêu thích (409)
{
"success": false,
"message": "Sản phẩm đã có trong danh sách yêu thích"
}
// Sản phẩm không tồn tại (404)
{
"success": false,
"message": "Không tìm thấy sản phẩm"
}
// Sản phẩm chưa yêu thích (404)
{
"success": false,
"message": "Sản phẩm không có trong danh sách yêu thích"
}
Tính năng:
- Thêm yêu thích (POST): Thêm sản phẩm vào danh sách yêu thích
- Xóa yêu thích (DELETE): Xóa sản phẩm khỏi danh sách yêu thích
- Validation: Kiểm tra sản phẩm tồn tại, tránh trùng lặp
- Auto ID: Tự động tạo ID yêu thích
- Product info: Trả về tên sản phẩm khi thêm thành công
Bảng database:
- yeu_thich_san_pham: Lưu trữ quan hệ yêu thích (id, user_id, product_id)
- sanpham: Validate sản phẩm tồn tại
Lưu ý:
- Bạn cần lấy token xác thực trước khi gọi API này
- user_id và product_id là tham số bắt buộc
- API tự động kiểm tra sản phẩm có tồn tại không
- Tránh thêm trùng lặp - trả về lỗi 409 nếu đã yêu thích
- Khi xóa, kiểm tra sản phẩm có trong danh sách yêu thích không
- Tự động tạo ID yêu thích khi thêm
- Có thể kết hợp với API favorite_products để lấy danh sách
- Có thể kết hợp với API product_detail để check trạng thái yêu thích