Hooks và Handler
Hooks và Handler Hook và handler cho phép bạn tùy chỉnh hành vi API tại từng điểm trong vòng đời request. Hook chạy trước hoặc sau handler, còn handler chứa logic nghiệp vụ chính. Điều hướng nhanh Tổng quan — Hook và handler là gì preHooks — Chạy trước handler postHooks — Chạy sa
Hooks và Handler
Hook và handler cho phép bạn tùy chỉnh hành vi API tại từng điểm trong vòng đời request. Hook chạy trước hoặc sau handler, còn handler chứa logic nghiệp vụ chính.
Điều hướng nhanh
- Tổng quan — Hook và handler là gì
- preHooks — Chạy trước handler
- postHooks — Chạy sau handler
- Handler tùy chỉnh — Thay thế CRUD mặc định
- Mẫu phổ biến — Ví dụ thực tế và thực hành tốt
Tổng quan
Hooks
Hook là các đoạn mã chạy tại những thời điểm xác định trong vòng đời request: - preHooks: Chạy trước handler - postHooks: Chạy sau handler
Handlers
Handler chứa logic nghiệp vụ chính: - Custom Handler: Mã do bạn tùy chỉnh - CRUD mặc định: Thao tác CRUD tự động dựa trên phương thức HTTP
Luồng thực thi
Pre-Auth Guards Auth Post-Auth Guards preHook #1 preHook #2 Handler postHook #1 postHook #2
Guard chạy trước hook để chặn IP hoặc giới hạn tần suất. Hook chạy sau guard để xác thực dữ liệu và xử lý logic nghiệp vụ.
Dùng @SHARE để truyền decision trong phạm vi request giữa các hook và handler. Chia trách nhiệm thành các hook có tên rõ ràng, chọn method và đặt priority khác nhau (số nhỏ chạy trước): khởi tạo decision mặc định, để hook phù hợp phía sau điều chỉnh, rồi sử dụng trong handler.
Pre-hook có thể return sớm để bỏ qua chính nó; giá trị return bị bỏ qua. Muốn dừng request trước handler thì throw. Post-hook phù hợp vẫn chạy sau lỗi thông thường của pre-hook hoặc handler với @ERROR có giá trị; cancellation và deadline dùng contract audit terminal riêng.
Nội dung tham khảo
- preHooks — Xác thực, biến đổi dữ liệu và kiểm tra quyền
- postHooks — Biến đổi response, audit log và tác vụ phụ
- Handler tùy chỉnh — Logic nghiệp vụ tùy chỉnh và các loại hook
- Mẫu phổ biến — Thực hành tốt và ví dụ thực tế
Tiếp theo
- Tìm hiểu Phương thức Repository để thao tác cơ sở dữ liệu
- Xem Tham chiếu Context để biết mọi thuộc tính có sẵn
- Xem Vòng đời API để hiểu thứ tự thực thi