1 个不稳定版本
0.1.0 | 2023年6月20日 |
---|
#8 在 #invalid
20KB
133 行(不含注释)
axum-option
在 axum 中更好地处理可选提取器。
此 crate 提供了一个 trait 和一个提取器,允许您从您的处理程序中提取可能缺失的值。
Crate 可以为其提取器实现 FromRequestPartsOptional
,以表示该提取器可以具有缺失的值,然后可以使用 ValidOption
提取器提取有效的 T
或缺失的 T
,但拒绝无效的 T
。
这与直接使用 Option<T>
有何不同?
不幸的是,axum 的默认 'Option' 处理程序意味着 'T 通过验证' 或 'T 未通过验证',基本上与 Result<T, T::Rejection>.ok()
相同,这通常不是您想要的。这意味着支持需要有效 cookie 或根本不需要 cookie 的处理程序,需要为每个 Crate 新建 type wrapper 模板和了解 Crate 的内部工作原理。 ValidOption
解决了这个问题。
现在您可以使用 ValidOption<Session>
获取有效的会话或根本不带会话,但拒绝无效的会话。
依赖关系
~6–21MB
~306K SLoC