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)

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 OK vớ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

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ử dataset
      • product_id - định danh duy nhất cho sản phẩm

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 OK vớ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

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"
    }
  }
}