Sản phẩm Cơ bản
Mô tả Tổng quan
Tính năng Sản phẩm Cơ bản cung cấp thông tin chi tiết về các sản phẩm trong dataset đã chọn. Chức năng này cho phép người dùng xem danh sách sản phẩm, thông tin chi tiết và metadata liên quan để hiểu rõ hơn về cấu trúc và nội dung của dataset.
Tính năng này đặc biệt hữu ích cho việc khám phá dataset, kiểm tra chất lượng dữ liệu và chuẩn bị cho các phân tích sâu hơn. Nó cung cấp cái nhìn tổng quan về sản phẩm có sẵn và giúp người dùng xác định sản phẩm nào cần phân tích chi tiết.
Swagger Link
API: Base Product API
Tài liệu Trường hợp
Trường hợp 1: Danh sách Sản phẩm
Mô tả
Người dùng thành công trong việc lấy danh sách tất cả sản phẩm trong dataset đã chọn.
Sơ đồ Tuần tự
sequenceDiagram
participant User
participant API as ProductAnalyzerController
participant Service as ProductAnalysisService
participant Repo as WishlistDatasetHistoryRepository
participant JP as JP API
Note over User,JP: Bước 1: Yêu cầu Danh sách Sản phẩm
User->>API: GET /api/v1/general/analyzer/{wldh_slug}/products (với tham số)
Note over API,Repo: Bước 2: Xác thực Dataset
API->>Repo: findBySlug(wldh_slug)
Repo-->>API: wishlistDatasetHistory
Note over API,Service: Bước 3: Lấy Danh sách Sản phẩm
API->>Service: getBaseProducts(dataset_id, request_data)
Service->>JP: Truy vấn danh sách sản phẩm
JP-->>Service: Dữ liệu sản phẩm thô
Note over Service,API: Bước 4: Xử lý Dữ liệu Sản phẩm
Service-->>API: Danh sách sản phẩm đã xử lý
Note over API,User: Bước 5: Trả về Phản hồi
API-->>User: 200 OK (Dữ liệu danh sách sản phẩm)
Các Bước
Bước 1: Yêu cầu Danh sách Sản phẩm
- Mô tả: Người dùng thực hiện yêu cầu để lấy danh sách sản phẩm cho dataset
- Yêu cầu:
GET /api/v1/general/analyzer/{wldh_slug}/products - Tham số:
- Tham số đường dẫn:
wldh_slug- định danh duy nhất cho lịch sử dataset - Tham số truy vấn:
page- số trang (tùy chọn, mặc định: 1)per_page- số sản phẩm mỗi trang (tùy chọn, mặc định: 20)sort_by- sắp xếp theo trường (tùy chọn)sort_order- thứ tự sắp xếp (tùy chọn: asc/desc)
- Tham số đường dẫn:
Bước 2: Xác thực Dataset
- Mô tả: Hệ thống xác thực rằng dataset được yêu cầu tồn tại
- Hành động: Tìm dataset theo slug trong repository
- Lỗi tiềm ẩn: Dataset không tìm thấy
Bước 3: Lấy Danh sách Sản phẩm
- Mô tả: Hệ thống truy xuất danh sách sản phẩm từ dataset
- Hành động: Gọi phương thức service để lấy sản phẩm cơ bản
- Dữ liệu được truy xuất:
- Thông tin sản phẩm cơ bản
- Metadata sản phẩm
- Thống kê đánh giá
- Thông tin giá cả
Bước 4: Xử lý Dữ liệu Sản phẩm
- Mô tả: Hệ thống xử lý và định dạng dữ liệu sản phẩm
- Hành động: Sắp xếp sản phẩm và chuẩn bị phản hồi
- Xử lý:
- Áp dụng phân trang
- Sắp xếp theo yêu cầu
- Tính toán thống kê
- Định dạng dữ liệu
Bước 5: Trả về Phản hồi
- Mô tả: Hệ thống trả về dữ liệu danh sách sản phẩm cho người dùng
- Phản hồi:
- Thành công:
200 OKvới dữ liệu danh sách sản phẩm - Lỗi: Thông báo lỗi thích hợp và mã trạng thái
- Thành công:
Trường hợp 2: Chi tiết Sản phẩm
Mô tả
Người dùng thành công trong việc lấy thông tin chi tiết về một sản phẩm cụ thể trong dataset.
Sơ đồ Tuần tự
sequenceDiagram
participant User
participant API as ProductAnalyzerController
participant Service as ProductAnalysisService
participant Repo as WishlistDatasetHistoryRepository
participant JP as JP API
Note over User,JP: Bước 1: Yêu cầu Chi tiết Sản phẩm
User->>API: GET /api/v1/general/analyzer/{wldh_slug}/products/{product_id}
Note over API,Repo: Bước 2: Xác thực Dataset và Sản phẩm
API->>Repo: findBySlug(wldh_slug)
Repo-->>API: wishlistDatasetHistory
Note over API,Service: Bước 3: Lấy Chi tiết Sản phẩm
API->>Service: getProductDetails(dataset_id, product_id)
Service->>JP: Truy vấn chi tiết sản phẩm
JP-->>Service: Dữ liệu chi tiết sản phẩm
Note over Service,API: Bước 4: Xử lý Chi tiết Sản phẩm
Service-->>API: Chi tiết sản phẩm đã xử lý
Note over API,User: Bước 5: Trả về Phản hồi
API-->>User: 200 OK (Dữ liệu chi tiết sản phẩm)
Các Bước
Bước 1: Yêu cầu Chi tiết Sản phẩm
- Mô tả: Người dùng thực hiện yêu cầu để lấy thông tin chi tiết về sản phẩm cụ thể
- Yêu cầu:
GET /api/v1/general/analyzer/{wldh_slug}/products/{product_id} - Tham số:
- Tham số đường dẫn:
wldh_slug- định danh duy nhất cho lịch sử datasetproduct_id- định danh duy nhất cho sản phẩm
- Tham số đường dẫn:
Bước 2: Xác thực Dataset và Sản phẩm
- Mô tả: Hệ thống xác thực rằng dataset và sản phẩm được yêu cầu tồn tại
- Hành động: Tìm dataset theo slug và kiểm tra sản phẩm
- Lỗi tiềm ẩn: Dataset hoặc sản phẩm không tìm thấy
Bước 3: Lấy Chi tiết Sản phẩm
- Mô tả: Hệ thống truy xuất thông tin chi tiết về sản phẩm
- Hành động: Gọi phương thức service để lấy chi tiết sản phẩm
- Dữ liệu được truy xuất:
- Thông tin sản phẩm đầy đủ
- Hình ảnh và mô tả
- Thống kê đánh giá chi tiết
- Thông tin giá cả và khuyến mãi
- Metadata và thuộc tính
Bước 4: Xử lý Chi tiết Sản phẩm
- Mô tả: Hệ thống xử lý và định dạng thông tin chi tiết sản phẩm
- Hành động: Tổ chức dữ liệu và chuẩn bị phản hồi
- Xử lý:
- Tổng hợp thông tin từ nhiều nguồn
- Tính toán thống kê
- Định dạng dữ liệu
- Kiểm tra tính nhất quán
Bước 5: Trả về Phản hồi
- Mô tả: Hệ thống trả về thông tin chi tiết sản phẩm cho người dùng
- Phản hồi:
- Thành công:
200 OKvới dữ liệu chi tiết sản phẩm - Lỗi: Thông báo lỗi thích hợp và mã trạng thái
- Thành công:
Bảng Dữ liệu Liên quan & Trường
Xem: Đặc tả API Phân tích
Xử lý Lỗi
-
Log
- Các lỗi lấy danh sách sản phẩm được ghi vào log ứng dụng
-
Chi tiết Lỗi:
Mã Trạng thái Thông báo Lỗi Mô tả 404 "Dataset không tìm thấy" Khi slug dataset được chỉ định không tồn tại 404 "Sản phẩm không tìm thấy" Khi ID sản phẩm được chỉ định không tồn tại trong dataset 400 "Tham số không hợp lệ" Khi các tham số được cung cấp không đáp ứng yêu cầu xác thực 500 "Lỗi máy chủ nội bộ" Khi có lỗi xảy ra trong quá trình xử lý
Ví dụ Sử dụng
Lấy Danh sách Sản phẩm
curl -X GET "https://api.example.com/api/v1/general/analyzer/dataset-slug/products?page=1&per_page=20&sort_by=name&sort_order=asc"
Lấy Chi tiết Sản phẩm
curl -X GET "https://api.example.com/api/v1/general/analyzer/dataset-slug/products/product123"
Cấu trúc Phản hồi
Danh sách Sản phẩm
{
"success": true,
"data": {
"products": [
{
"id": "product123",
"name": "Tên Sản phẩm",
"image": "https://example.com/image.jpg",
"price": 99.99,
"rating": 4.5,
"review_count": 150
}
],
"pagination": {
"current_page": 1,
"per_page": 20,
"total": 100,
"last_page": 5
}
}
}
Chi tiết Sản phẩm
{
"success": true,
"data": {
"id": "product123",
"name": "Tên Sản phẩm",
"description": "Mô tả chi tiết sản phẩm",
"image": "https://example.com/image.jpg",
"price": 99.99,
"rating": 4.5,
"review_count": 150,
"attributes": {
"brand": "Thương hiệu",
"category": "Danh mục",
"weight": "1.5kg"
}
}
}