Bỏ qua, đến nội dung

Hướng dẫn cài đặt và cấu hình — REST API Data Source

Yêu cầu hệ thống

Thành phầnYêu cầu tối thiểu
Server DigiforcePhiên bản >= 1.0, đã kích hoạt plugin data-source-manager
API bên ngoàiREST API trả về JSON, truy cập được từ server Digiforce
MạngServer Digiforce phải kết nối được đến API endpoint (mở firewall, VPN nếu cần)

Lưu ý

Plugin data-source-managererror-handler cần được bật trước. Plugin REST API đăng ký error handler riêng để xử lý lỗi từ API bên ngoài.

Bước 1: Kích hoạt plugin

  1. Truy cập Settings → Plugin Manager
  2. Tìm plugin-data-source-rest-api
  3. Bật công tắc Enable
  4. Khởi động lại server nếu hệ thống yêu cầu

Khi plugin được tải, nó đăng ký type http vào DataSourceManager, cho phép tạo data source dựa trên HTTP request.

Bước 2: Tạo data source mới

  1. Vào Settings → Data Sources
  2. Nhấn Add new → chọn loại REST API (HTTP)
  3. Điền thông tin cấu hình:
TrườngBắt buộcMô tảVí dụ
Data source nameTên định danh (chữ, số, gạch dưới)crm_api
Display nameTên hiển thị trên giao diệnCRM REST API
Base URLURL gốc của REST APIhttps://api.example.com/v1
HeadersKhôngHeaders mặc định gửi kèm mọi requestAuthorization: Bearer xxx
VariablesKhôngBiến tùy chỉnh dùng trong templateapiVersion: v2
TimeoutKhôngThời gian chờ tối đa cho mỗi request (ms)30000
Response typeKhôngKiểu response mong đợijson

Bước 3: Cấu hình Collection (Endpoint Mapping)

Mỗi collection trong REST API data source tương ứng với một nhóm endpoint. Bạn cần định nghĩa action mapping cho mỗi collection:

Các action có thể cấu hình

ActionHTTP MethodMô tảVí dụ path
listGETLấy danh sách bản ghi/users
getGETLấy một bản ghi theo ID/users/{{request.params.filterByTargetKey}}
createPOSTTạo bản ghi mới/users
updatePUT / PATCHCập nhật bản ghi/users/{{request.params.filterByTargetKey}}
destroyDELETEXóa bản ghi/users/{{request.params.filterByTargetKey}}

Cấu hình cho mỗi action

Thuộc tínhMô tả
MethodHTTP method (GET, POST, PUT, PATCH, DELETE)
PathĐường dẫn endpoint (hỗ trợ template variable)
HeadersHeaders riêng cho action này (ghi đè headers mặc định)
ParamsQuery parameters gửi kèm
Content-Typeapplication/json hoặc application/x-www-form-urlencoded
BodyNội dung body cho POST/PUT/PATCH
Response transformerTemplate chuyển đổi response sang định dạng chuẩn
Error message transformerTemplate trích xuất thông báo lỗi từ response

Bước 4: Kiểm tra với Debug Mode

Plugin cung cấp action runAction cho phép gửi request thử nghiệm:

  1. Cấu hình action (ví dụ: list)
  2. Nhấn Run / Debug để gửi request thực tế đến API
  3. Xem kết quả response, bao gồm:
    • Raw response: Status, headers, body gốc
    • Transformed response: Dữ liệu sau khi qua response transformer
    • Inferred fields: Các trường được tự động nhận diện từ response

TIP

Chế độ Debug cho phép xem response ngay cả khi HTTP status là lỗi (4xx, 5xx), giúp bạn dễ dàng debug cấu hình.

Bước 5: Định nghĩa Fields

Plugin có thể tự động nhận diện fields từ JSON response:

  • string → field type string
  • Số nguyên → field type integer
  • Số thực → field type float
  • boolean → field type boolean
  • Object → field type json
  • null → cho phép chọn giữa string, integer, float, boolean, json

Plugin cũng tự động đoán filterTargetKey (primary key) bằng cách tìm các trường có tên id, nodeId, hoặc node_id.

Template Variables

Trong cấu hình path, headers, params và body, bạn có thể sử dụng template variables:

VariableMô tảVí dụ
{{request.params.filter}}Bộ lọc từ Digiforce UI
{{request.params.filterByTargetKey}}Giá trị primary key/users/{{request.params.filterByTargetKey}}
{{request.params.page}}Trang hiện tại?page={{request.params.page}}
{{request.params.pageSize}}Số bản ghi mỗi trang?limit={{request.params.pageSize}}
{{request.headers}}Headers của request gốc
{{request.token}}Bearer token của user hiện tạiAuthorization: Bearer {{request.token}}
{{request.body}}Body của request (cho create/update)
{{dataSourceVariables.xxx}}Biến tùy chỉnh của data source{{dataSourceVariables.apiVersion}}
{{$env.xxx}}Biến môi trường từ Environment Variables plugin{{$env.API_SECRET}}

Response Transformer

Response transformer cho phép bạn chuyển đổi response của API bên ngoài sang định dạng mà Digiforce hiểu:

json
{
  "data": "{{rawResponse.body.results}}",
  "meta": {
    "count": "{{rawResponse.body.total}}"
  }
}
TrườngMô tả
dataMảng bản ghi (cho list) hoặc object bản ghi (cho get)
meta.countTổng số bản ghi (dùng cho phân trang)

Xác nhận hoạt động

  1. Vào Collection Manager của data source vừa tạo
  2. Kiểm tra danh sách collection đã được cấu hình
  3. Thử mở collection trong giao diện — dữ liệu sẽ được lấy từ REST API
  4. Thử tạo/sửa/xóa bản ghi nếu đã cấu hình action tương ứng