Tổng quan API
Địa chỉ
| Môi trường | Base URL | Dữ liệu |
|---|---|---|
| Thật (production) | https://hqbm.vn/api/v1 | dữ liệu thật, cẩn trọng |
| Thử nghiệm | https://test.hqbm.vn/api/v1 | tách biệt, thoải mái thử |
Mọi endpoint dưới đây đều nối tiếp vào base URL. Ví dụ POST /Auth/login nghĩa là
POST https://hqbm.vn/api/v1/Auth/login.
Quy ước dữ liệu trả về
Hầu hết endpoint trả về JSON theo một khuôn chung:
{
"success": true,
"message": null,
"error": null,
"data": { },
"total": 0
}
| Trường | Ý nghĩa |
|---|---|
success | true nếu xử lý thành công. Luôn kiểm tra trường này — nhiều endpoint trả HTTP 200 kèm success: false thay vì trả mã lỗi HTTP. |
message | Thông báo lỗi bằng tiếng Việt, hiển thị được thẳng cho người dùng. |
error | Mã lỗi nội bộ (nếu có). |
data | Dữ liệu chính. Có thể là object, mảng, số hoặc null. |
total | Tổng số bản ghi khi truy vấn có phân trang. |
:::warning Đừng chỉ dựa vào mã HTTP
Một số controller bắt lỗi rồi trả Ok(ResultModel.Error(...)), tức là HTTP 200 nhưng
success: false. Client phải đọc success chứ không thể chỉ nhìn mã trạng thái HTTP.
:::
Một số endpoint phân trang trả thẳng { "data": [...], "total": 123 } không có success —
tài liệu từng nhóm sẽ ghi rõ.
Định dạng ngày giờ
Ngày gửi lên và nhận về phần lớn theo dd/MM/yyyy (ví dụ 08/09/2026), không phải ISO.
Một số DTO mới hơn trả DateTime dạng ISO 2026-09-08T14:30:00. Khi tích hợp nên kiểm tra
thực tế từng endpoint thay vì giả định.
Số tiền và số lượng
- Tiền tệ: đơn vị đồng, làm tròn về số nguyên (quy định 01/09/2026).
- Số lượng: cho phép phần thập phân (kg, lít...).
Phân trang
Endpoint có phân trang nhận page (bắt đầu từ 1) và pageSize:
GET /Dashboard/danhSachDonDangGiao?page=1&pageSize=10
Trả về data là mảng của trang hiện tại, total là tổng số bản ghi của toàn bộ kết quả
lọc (không phải số phần tử trong trang).