Bỏ qua, đến nội dung

Tham chiếu API ​

Endpoints ​

EndpointMethodMô tả
{collection}:importXlsxPOSTNhập dữ liệu từ file Excel (multipart/form-data)
{collection}:downloadXlsxTemplatePOSTTải file Excel mẫu theo cấu hình field

{collection}:importXlsx ​

Method: POST

Content-Type: multipart/form-data (qua @koa/multer middleware)

Request parameters:

Tham sốKiểuBắt buộcMô tả
fileFileCóFile Excel (.xlsx) upload qua multipart
columnsJSONCóMapping cột Excel sang field collection
explainbooleanKhôngtrue = dry-run (chỉ validate, không insert)

Luồng xử lý server:

  1. Multer middleware nhận file upload, lưu vào buffer.
  2. Parse file Excel bằng exceljs.
  3. Validate từng dòng: kiểm tra type, required, unique constraint.
  4. Nếu explain: true → chỉ trả kết quả validate.
  5. Nếu explain: false → insert/update bản ghi vào DB.
  6. Trả kết quả: số dòng thành công, danh sách dòng lỗi.

Response thành công:

json
{
  "success": true,
  "data": {
    "successCount": 450,
    "failureCount": 5,
    "failures": [
      { "row": 12, "field": "email", "message": "Giá trị trùng lặp" }
    ]
  }
}

{collection}:downloadXlsxTemplate ​

Method: POST

Tạo file Excel mẫu theo cấu hình field của collection.

Response: Binary XLSX stream chứa header row với tên cột.

Error classes ​

Plugin định nghĩa hai custom error class:

Error classKhi nàoNội dung
ImportValidationErrorDữ liệu không hợp lệ (type, required, unique)Danh sách dòng + lý do lỗi
ImportErrorLỗi hệ thống (DB connection, parse failure)Mô tả lỗi kỹ thuật

Mutex ​

Import sử dụng async-mutex tương tự export — chỉ cho phép 1 import chạy cùng lúc trên cùng server instance để tránh race condition.

ACL ​

QuyềnMô tả
importXlsxQuyền riêng biệt cho import, thêm vào admin role khi install
downloadXlsxTemplateCho phép tất cả user đã đăng nhập tải template