#extractor #axum #valid #optional #invalid #reject #valid-option

axum-option

为 Axum 提供有效的或缺失的提取器

1 个不稳定版本

0.1.0 2023年6月20日

#8#invalid

MIT/Apache

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