SuperAPI AI 工具集

axum-knowledge-patch

通用与其它

查看项目

更新于 10-16 06:50

技能介绍

Axum Knowledge Patch 是一份知识更新资料,基线为 Axum 0.7.x,覆盖范围为 0.8-guide 与 0.8.0,并包含 axum-core、axum-extra、axum-macros 配套 crate 的批次内容。

用途:帮助开发者了解从 Axum 0.7.x 迁移到 0.8 时的破坏性变更、弃用项和使用行为调整,涉及路由与服务、提取器与请求体、WebSocket 与流式、响应与中间件、依赖与发布兼容性等参考主题。

主要能力与内容:说明路由处理函数需满足 Sync;移除自定义提取器中的 #[async_trait],改用原生 async fn;元组路径需精确匹配参数数量;Option 提取不再把所有拒绝转为 None,需实现 OptionalFromRequestParts 或 OptionalFromRequest;Host 从 axum::extract 移至 axum_extra::extract::Host 且后续版本弃用;axum::serve 改为通过 ListenerExt 配置 TCP 与流设置;WebSocket 消息使用 Bytes 与 Utf8Bytes,close 方法移除改为发送 Message::Close(None);HTTP/2 WebSocket 需用 any 路由;axum-extra 0.12 各工具需显式启用对应 feature;vpath! 改用花括号语法;Json 提取器拒绝尾随内容;Query 与 Form 使用 serde_path_to_error 提供字段路径;SSE 支持二进制数据且不再要求 tokio feature;TypedPath 支持查询参数与自定义拒绝类型;ErasedJson::pretty 追加换行;Attachment 与 FileStream 文件名转义反斜杠和双引号。

使用方式:在改代码前检查 Cargo.lock 与 feature 选择;优先处理路由、提取器、服务和 WebSocket 的破坏性变更;修改 multipart、类型化路由、响应体类型或 feature 标志前先阅读对应参考;保留拒绝语义,区分缺失值与格式错误;避免锁定被撤回的版本。

兼容性:Axum 0.8.0 需 Rust 1.75 或更新,0.8.5 起需 1.78,0.8.9 起需 1.80;应避免 axum 0.8.2、axum-core 0.5.1、axum-extra 0.11.0 这些被撤回版本;axum-extra 0.12 的 Protobuf 集成需与 prost 0.14 对齐。

限制:资料中部分 API 处于未发布状态,具体行为可能随补丁发布而不同;原文未提供完整示例代码、收费价格或平台信息。