Lọc Phương thức Yêu cầu trong Hyperlane

Các ứng dụng web xử lý các phương thức HTTP khác nhau như GET, POST và DELETE. Hyperlane cung cấp cho bạn nhiều cách để lọc các yêu cầu này. Bạn có thể định tuyến các yêu cầu đến các trình xử lý (handlers) cụ thể hoặc sử dụng middleware để kiểm tra các phương thức.

Dưới đây là các cách để lọc phương thức trong Hyperlane:

  • Sử dụng #[is_get_method] cho các endpoint chỉ đọc đơn giản. Macro này sẽ từ chối bất kỳ yêu cầu nào không phải là yêu cầu GET.

  • Sử dụng #[methods] để định tuyến linh hoạt. Bạn có thể truyền vào một danh sách các phương thức được cho phép. Ví dụ: #[methods("GET", "POST")] cho phép cả việc đọc và tạo dữ liệu.

  • Sử dụng kiểm tra thủ công cho các logic phức tạp. Bạn có thể lấy phương thức từ context và sử dụng các câu lệnh if-else để quyết định cách phản hồi.

  • Sử dụng #[filter] để kiểm soát ở cấp độ route. Bạn có thể kết hợp điều này với các định nghĩa route để tạo ra các trình xử lý cụ thể cho các phương thức khác nhau trên cùng một đường dẫn.

  • Sử dụng middleware để ghi log hoặc debug. Bạn có thể trích xuất phương thức và thêm nó vào các thuộc tính (attributes) của yêu cầu.

Các thực hành tốt nhất cho API của bạn:

  • Sử dụng #[is_get_method] cho các tác vụ chỉ đọc để giữ cho mã nguồn sạch sẽ.
  • Sử dụng #[methods] khi một endpoint cần nhiều hơn một loại yêu cầu.
  • Trả về mã trạng thái 405 nếu người dùng gửi một phương thức không được hỗ trợ.
  • Kết hợp các bộ lọc để tạo ra các quy tắc nghiêm ngặt. Bạn có thể kiểm tra phương thức, host và độ dài đường dẫn cùng một lúc.

Các công cụ này giúp bạn xây dựng các API sạch sẽ và có tổ chức. Chúng giúp mã nguồn của bạn dễ đọc và dễ bảo trì hơn.

Mã nguồn dự án: https://github.com/hyperlane-dev/hyperlane

Nguồn: https://dev.to/tengxgfyrz67s/request-method-filtering-35jk