ctx.request()
Gửi HTTP request có xác thực trong RunJS. Request sẽ tự động mang theo baseURL, Token, locale, role, v.v. của ứng dụng hiện tại, và kế thừa logic interceptor request và xử lý lỗi của ứng dụng.
Kịch bản áp dụng
Tất cả các kịch bản trong RunJS cần gửi HTTP request từ xa đều có thể sử dụng, như JSBlock, JSField, JSItem, JSColumn, luồng sự kiện, liên kết, JSAction, v.v.
Định nghĩa kiểu
RequestOptions mở rộng từ AxiosRequestConfig của Axios:
Tham số thường dùng
URL kiểu resource
API resource của NocoBase hỗ trợ dạng rút gọn resource:action:
Path tương đối sẽ được nối với baseURL của ứng dụng (thường là /api); cross-domain cần dùng URL đầy đủ, service đích cần cấu hình CORS.
Cấu trúc response
Giá trị trả về là object response của Axios, các trường thường dùng:
response.data: response body- API list thường là
data.data(array bản ghi) +data.meta(phân trang, v.v.) - API đơn/tạo/cập nhật thường có
data.datalà bản ghi đơn
Ví dụ
Truy vấn list
Submit dữ liệu
Với filter và sort
Bỏ qua thông báo lỗi
Request cross-domain
Khi sử dụng URL đầy đủ để request đến domain khác, service đích cần cấu hình CORS cho phép nguồn ứng dụng hiện tại. Nếu API đích cần token riêng, có thể truyền qua headers:
Hiển thị kết hợp với ctx.render
Lưu ý
- Xử lý lỗi: Request thất bại sẽ ném exception, mặc định sẽ hiển thị thông báo lỗi global. Sử dụng
skipNotify: trueđể tự bắt và xử lý. - Xác thực: Request cùng domain sẽ tự động mang Token, locale, role của user hiện tại; cross-domain cần đích hỗ trợ CORS, và truyền token vào headers theo nhu cầu.
- Quyền resource: Request bị ràng buộc bởi ACL, chỉ có thể truy cập các resource mà user hiện tại có quyền.
Liên quan
- ctx.message - Hiển thị thông báo nhẹ sau khi request hoàn thành
- ctx.notification - Hiển thị notification sau khi request hoàn thành
- ctx.render - Render kết quả request lên giao diện
- ctx.makeResource - Xây dựng object resource, dùng cho tải dữ liệu chuỗi (chọn một trong hai với
ctx.requesttrực tiếp)

