Phân trang & Bộ lọc dữ liệu
Các API trả về danh sách dữ liệu (ví dụ: lịch sử giao dịch) hỗ trợ cơ chế phân trang (Pagination) và các bộ lọc (Filters) nâng cao để tối ưu băng thông đường truyền và cải thiện hiệu năng.
🔢 Cơ chế Phân trang (Pagination)
Để phân trang kết quả, bạn hãy sử dụng hai Query Parameters:
page: Số trang cần lấy (bắt đầu từ1, mặc định:1).per_page: Số lượng phần tử trên mỗi trang (mặc định:10, tối đa nên cấu hình hợp lý để tránh quá tải).
Cấu trúc Response Phân trang
Khi gọi API phân trang, kết quả trả về sẽ có thêm object pagination chứa siêu dữ liệu (metadata):
{
"success": true,
"data": [ ... ],
"pagination": {
"page": 1,
"per_page": 10,
"total": 45
}
}
page: Trang hiện tại.per_page: Số bản ghi trên mỗi trang.total: Tổng số lượng bản ghi khớp với bộ lọc trong database.
🔍 Bộ lọc nâng cao (Advanced Filters)
API lịch sử giao dịch /api/transactions/:slug hỗ trợ các bộ lọc kết hợp dưới dạng Query Parameters:
1. Lọc theo mã cổ phiếu (stock_code)
Lấy các giao dịch liên quan đến một mã cổ phiếu cụ thể (viết hoa):
GET /api/transactions/bangnh?stock_code=FPT
2. Lọc theo công ty chứng khoán (broker)
Lọc giao dịch thuộc tài khoản liên kết với công ty chứng khoán chỉ định (theo mã broker):
GET /api/transactions/bangnh?broker=SSI
3. Lọc theo loại giao dịch (type)
Chỉ lấy các giao dịch mua hoặc bán:
buy: Lọc lệnh mua.sell: Lọc lệnh bán.
GET /api/transactions/bangnh?type=buy
4. Lọc theo khoảng thời gian (start_date & end_date)
Lọc giao dịch trong một khoảng thời gian cụ thể (Định dạng: YYYY-MM-DD):
GET /api/transactions/bangnh?start_date=2026-01-01&end_date=2026-05-25