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ả
fileFileFile Excel (.xlsx) upload qua multipart
columnsJSONMapping 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