Data Source REST API

Giới thiệu

Dùng để tích hợp dữ liệu từ nguồn REST API.

Cài đặt

Plugin này là plugin thương mại, để biết chi tiết cách kích hoạt vui lòng tham khảo: Hướng dẫn kích hoạt plugin thương mại

Thêm nguồn REST API

Sau khi kích hoạt plugin, chọn REST API trong dropdown menu Add new của Data Source Manager.

20240721171420

Cấu hình nguồn REST API

20240721171507

Thêm Collection

Tài nguyên RESTful chính là Collection của NocoBase, ví dụ tài nguyên Users

GET /users
POST /users
GET /users/1
PUT /users/1
DELETE /users/1

Khi ánh xạ vào API NocoBase sẽ được cấu hình như sau

GET /users:list
POST /users:create
POST /users:get?filterByTk=1
POST /users:update?filterByTk=1
POST /users:destroy?filterByTk=1

Quy chuẩn thiết kế API NocoBase đầy đủ tham khảo tài liệu API

20240716213344

Xem chương "NocoBase API - Core"

20240716213258

Cấu hình Collection của Data Source REST API như sau

List

Cấu hình ánh xạ API xem danh sách tài nguyên

20251201162457

Get

Cấu hình ánh xạ API xem chi tiết tài nguyên

20251201162744

Create

Cấu hình ánh xạ API tạo tài nguyên

20251201163000

Update

Cấu hình ánh xạ API cập nhật tài nguyên 20251201163058

Destroy

Cấu hình ánh xạ API xóa tài nguyên

20251201163204

Trong đó List và Get là hai API bắt buộc phải cấu hình.

Debug API

Mapping tham số request

Ví dụ: Cấu hình tham số phân trang cho API List (nếu third-party API không hỗ trợ phân trang, thì sẽ phân trang dựa trên dữ liệu danh sách lấy được).

20251201163500

Lưu ý, chỉ có các biến đã được thêm vào trong API mới có hiệu lực.

Tên tham số tích hợp third-party APITham số NocoBase
page{{request.params.page}}
limit{{request.params.pageSize}}

Bạn có thể nhấn Try it out để debug, xem kết quả response.

20251201163635

Chuyển đổi format response

Format response của third-party API có thể không phải là chuẩn NocoBase, cần được chuyển đổi mới có thể hiển thị đúng ở frontend.

20251201164529

Điều chỉnh quy tắc chuyển đổi theo format response của third-party API, sao cho phù hợp với chuẩn output của NocoBase.

20251201164629

Mô tả quy trình debug

20240717110051

Chuyển đổi thông tin lỗi

Khi third-party API xảy ra lỗi, format thông tin lỗi response có thể không phải chuẩn NocoBase, cần được chuyển đổi mới có thể hiển thị đúng ở frontend.

20251201170545

Khi không cấu hình chuyển đổi thông tin lỗi, mặc định sẽ chuyển đổi thành thông tin lỗi chứa http status code.

20251201170732

Sau khi cấu hình chuyển đổi thông tin lỗi, để phù hợp với chuẩn output của NocoBase, frontend có thể hiển thị đúng thông tin lỗi của third-party API.

20251201170946 20251201171113

Biến (Variables)

Data Source REST API cung cấp ba loại biến dùng để tích hợp API

  • Biến tùy chỉnh của Data Source
  • NocoBase request
  • Third-party response

Biến tùy chỉnh của Data Source

20240716221937

20240716221858

NocoBase request

  • Params: URL query parameters (Search Params), Params của mỗi API có sự khác nhau;
  • Headers: Request body, chủ yếu cung cấp một số thông tin X- tùy chỉnh của NocoBase;
  • Body: Body của request;
  • Token: API token của request NocoBase hiện tại.

20251201164833

Third-party response

Hiện tại chỉ cung cấp Body của response

20251201164915

Các biến có thể sử dụng khi tích hợp với mỗi API như sau:

List

Tham sốMô tả
request.params.pageSố trang hiện tại
request.params.pageSizeSố lượng mỗi trang
request.params.filterĐiều kiện lọc (cần phù hợp với format Filter của NocoBase)
request.params.sortQuy tắc sắp xếp (cần phù hợp với format Sort của NocoBase)
request.params.appendsField load theo nhu cầu, thường dùng cho việc load theo nhu cầu của field quan hệ
request.params.fieldsAPI chỉ output các field nào (whitelist)
request.params.exceptLoại trừ các field nào (blacklist)

Get

Tham sốMô tả
request.params.filterByTkBắt buộc, thường là ID của dữ liệu hiện tại
request.params.filterĐiều kiện lọc (cần phù hợp với format Filter của NocoBase)
request.params.appendsField load theo nhu cầu, thường dùng cho việc load theo nhu cầu của field quan hệ
request.params.fieldsAPI chỉ output các field nào (whitelist)
request.params.exceptLoại trừ các field nào (blacklist)

Create

Tham sốMô tả
request.params.whiteListWhitelist
request.params.blacklistBlacklist
request.bodyDữ liệu khởi tạo khi tạo

Update

Tham sốMô tả
request.params.filterByTkBắt buộc, thường là ID của dữ liệu hiện tại
request.params.filterĐiều kiện lọc (cần phù hợp với format Filter của NocoBase)
request.params.whiteListWhitelist
request.params.blacklistBlacklist
request.bodyDữ liệu cập nhật

Destroy

Tham sốMô tả
request.params.filterByTkBắt buộc, thường là ID của dữ liệu hiện tại
request.params.filterĐiều kiện lọc (cần phù hợp với format Filter của NocoBase)

Cấu hình Field

Từ dữ liệu của API CRUD của tài nguyên đã được adapt, trích xuất metadata của field (Fields) làm field của Collection.

20240716223636

Trích xuất metadata của field.

20251201165133

Field và preview.

20240716224403

Chỉnh sửa field (tương tự cách của các Data Source khác).

20240716224704

Thêm block Data Source REST API

Sau khi cấu hình Collection xong, bạn có thể vào giao diện để thêm block.

20240716225120