Giao diện
@digiforce-nc/plugin-data-source-rest-api
Plugin kết nối REST API bên ngoài làm data source — biến các HTTP endpoint thành collection để thao tác dữ liệu từ giao diện Digiforce.
Plugin này làm gì?
Không phải dữ liệu nào cũng nằm trong database. Nhiều hệ thống cung cấp dữ liệu qua REST API (CRM, ERP, SaaS). Plugin này đăng ký loại data source rest-api vào data-source-manager factory, cho phép map HTTP endpoints thành collection — mỗi endpoint tương ứng một collection, mỗi JSON response field tương ứng một field.
Cơ chế hoạt động
Tính năng chính
| # | Tính năng | Mô tả |
|---|---|---|
| 1 | Map endpoint → collection | Mỗi REST endpoint trở thành một collection |
| 2 | CRUD mapping | Map GET/POST/PUT/DELETE sang list/create/update/destroy |
| 3 | Authentication | Hỗ trợ API Key, Bearer Token, Basic Auth, OAuth2 |
| 4 | Field mapping | Map JSON response fields thành collection fields |
| 5 | Pagination | Hỗ trợ offset, cursor-based, page-based pagination |
| 6 | Request transform | Tùy chỉnh headers, query params, body transform |
Cấu hình kết nối
| Tham số | Bắt buộc | Mô tả | Ví dụ |
|---|---|---|---|
baseUrl | Co | URL gốc của API | https://api.example.com/v1 |
authType | Không | Kiểu xác thực | bearer, apiKey, basic |
authToken | Không | Token xác thực | eyJhbGci... |
headers | Không | Headers mặc định | Content-Type: application/json |
timeout | Không | Timeout request (ms) | 30000 |
Kiến trúc nội bộ
| Thành phần | Vai trò |
|---|---|
| Register | Đăng ký rest-api type vào factory |
| Config | Lưu cấu hình endpoints (URL, method, params) |
| Adapter | Gọi HTTP request với auth, headers, transform |
| Mapper | Chuyển JSON response thành collection records |
Thành phần client
| Thành phần | Mô tả |
|---|---|
RESTConfigForm | Form cấu hình base URL và authentication |
EndpointEditor | Giao diện định nghĩa endpoint → collection mapping |
FieldMapper | Map JSON fields sang collection fields |
RequestTester | Gửi request thử và xem response |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework |
@digiforce-nc/client | Client UI framework |
@digiforce-nc/data-source-manager | Registry quản lý data source |
axios | HTTP client cho REST requests |
Lưu ý triển khai
- API bên ngoài cần accessible từ server Digiforce (firewall, VPN)
- Rate limiting phụ thuộc vào API provider
- Response phải là JSON format
- Nên cache response cho API không thay đổi thường xuyên