RivTian

Results 14 comments of RivTian

m2 pro 尝试使用 ```bash sudo xattr -r -d com.apple.quarantine /Applications/网易云音乐云盘上传.app ``` 运行成功

Series: Backend Engineering in Axum -> https://blog.0xshadow.dev/series/backend-engineering-in-axum/ Axum Chinese Doc Series: - [Basic](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478637379) - [Extract](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478638849) - [handler](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478640138) - [Body](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478641797) - [Routing](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478642782) - [response](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478643589) - [middleware](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478644763) - [Router](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478646858) - [error_handing](https://github.com/RivTian/blog-articles/issues/10#issuecomment-3478648763)

# Axum 中文文档:Basic (Part I) ## 高级功能 - 使用无宏(`macro-free`)的API路由(`router`)请求(`request`)到处理程序(`handler`) - 使用提取器(`extractor`)声明式解析请求 - 简单且可预测的错误处理模型 - 生成局域最少样板的响应 - 充分利用`tower`和`tower-http`生态系统的中间件、服务和使用程序 特别是,最后一点是区分**axum**与其它框架的地方。 **axum**没有自己的中间件系统,而是使用`tower::Service`。 这意味着**axum**获得**超时**、**追踪**、**压缩**、**授权**等功能,而且是免费的。 它还能让您与使用**hyper**或**tonic**编写的应用程序共享中间件。 ## 兼容性 **axum**旨在与**tokio**和**hyper**协同工作。至少目前来看,并不追求运行时和传输层独立性。 ## Hello World ```rust use axum::{...

# Axum 中文文档:Extract (Part II) 一个**处理函数**(`handler`)是一个异步函数,**它以任意数量的提取器(`extract`)作为参数**。 **提取器**(`extract`)是**实现了** `FromRequest` 或 `FromRequestParts` 的类型。 例如,`Json`**是一个提取器**,**用于消耗请求主体并将其反序列化为某种目标类型**: ```rust use axum::{ extract::Json, routing::post, handler::Handler, Router, }; use serde::Deserialize; #[derive(Deserialize)] struct CreateUser { email: String, password: String,...

# Axum 中文文档:handler (Part III) ## 什么是Handler 可**用于处理请求**的**异步函数**。 在axum中,**处理程序**是一个**异步函数**,它**接受**零个或多个**提取器**作为参数, **并返回****可以转换为响应的内容**。 **处理程序**是**应用程序逻辑所在的地方**, **axum应用程序**是**通过处理程序之间的路由构建的**。 即是说,处理程序是**axum应用程序的核心**, 路由是程序的**入口**,整个axum应用程序是由**路由和处理程序**组成的。 ## 一些handlers的示例 ```rust use axum::{body::Bytes, http::StatusCode}; // 立即返回空的`200 OK`响应 async fn unit_handler() {} // 立即返回空的`200 OK`响应并附带纯文本主体的处理程序。...

# Axum 中文文档:Body (Part IV) ## 什么是body模块 HTTP请求体实用工具。 ## 重新导出 ```rust pub use http_body::Body as HttpBody; pub use bytes::Bytes; ``` ## 结构体 - `Body`: 用于axum**请求**和**响应**的body类型 - `BodyDataStream`: 数据帧流 ## 函数...

# Axum 中文文档:Routing (Part V) ## 什么是路由 **服务**(`Service`)和**处理程序**(`handler`)之间的**路由**。 ## 重新导出 ```rust pub use self::method_routing::any; pub use self::method_routing::any_service; pub use self::method_routing::delete; pub use self::method_routing::delete_service; pub use self::method_routing::get; pub use self::method_routing::get_service; pub...

# Axum 中文文档:response (Part VI) ## 什么是response模块 用于**生成响应**的**类型**和**特型**(Trait)。 ## 构建响应 **任何实现** `IntoResponse` **接口的东西都可以从处理程序中返回**。 axum 为常见类型提供了实现: ```rust use axum::{ Json, response::{Html, IntoResponse}, http::{StatusCode, Uri, header::{self, HeaderMap, HeaderName}}, }; // `()` 提供一个空响应...

# Axum 中文文档:middleware (Part VII) ## 什么是middleware模块 用于编写中间件的实用程序 axum 在于其**没有自己独特的专门的中间件系统**,而是与 `tower` 集成。 这意味着 `tower` 和 `tower-http` 中间件的生态系统都与 axum 配合使用。 虽然不必完全了解 `tower`,才能编写或使用 axum 的中间件, 但建议至少对 `tower` 的概念有基本了解。 请查看 `tower` 的指南以获取一般介绍。 同时建议阅读...

# Axum 中文文档:Router (Part VIII) ## `axum::Router`结构体 ```rust pub struct Router { /* private fields */} ``` 用于**组合处理程序和服务**的路由器类型。 ## 实现 ```rust impl Router where S: Clone + Send + Sync...