Hyperlane 中的请求方法过滤
Web 应用程序处理不同的 HTTP 方法,例如 GET、POST 和 DELETE。Hyperlane 为您提供了多种过滤这些请求的方式。您可以将请求路由到特定的处理器,或者使用中间件来检查方法。
以下是在 Hyperlane 中过滤方法的方式:
对于简单的只读端点,请使用
#[is_get_method]。此宏会拒绝任何非 GET 请求。对于灵活的路由,请使用
#[methods]。您可以传递一个允许的方法列表。例如,#[methods("GET", "POST")]允许读取和创建数据。对于复杂的逻辑,请使用手动检查。您可以从上下文中获取方法,并使用 if-else 语句来决定如何响应。
对于路由级控制,请使用
#[filter]。您可以将其与路由定义结合使用,为同一路径上的不同方法创建特定的处理器。使用中间件进行日志记录或调试。您可以提取方法并将其添加到请求属性中。
API 最佳实践:
- 对于只读任务,请使用
#[is_get_method]以保持代码整洁。 - 当一个端点需要多种类型的请求时,请使用
#[methods]。 - 如果用户发送了不支持的方法,请返回 405 状态码。
- 结合使用过滤器以创建严格的规则。您可以同时检查方法、主机和路径长度。
这些工具可以帮助您构建整洁且有条理的 API。它们使您的代码更易于阅读和维护。
Project Code: https://github.com/hyperlane-dev/hyperlane
Source: https://dev.to/tengxgfyrz67s/request-method-filtering-35jk