请求处理

本文将介绍 Silent 框架中的请求处理机制,包括如何获取和解析各种类型的请求数据。

请求体解析

Silent 框架支持多种请求体格式的自动解析:

JSON 请求体

use serde::Deserialize;
use silent::prelude::*;

#[derive(Deserialize)]
struct CreateUser {
    name: String,
    email: String,
}

#[handler]
async fn create_user(body: Json<CreateUser>) -> Result<String> {
    Ok(format!("Created user: {}", body.name))
}

表单数据

文件上传

查询参数

基本查询参数

结构化查询参数

路径参数

基本路径参数

结构化路径参数

请求头

读取请求头

自定义请求头

最佳实践

  1. 使用强类型的请求模型,利用 Serde 的序列化功能

  2. 为可选参数提供合理的默认值

  3. 对用户输入进行适当的验证和清理

  4. 使用适当的错误处理机制

  5. 合理组织请求处理逻辑,保持代码清晰

完整示例

这是一个综合示例,展示了如何处理不同类型的请求数据:

这个示例展示了如何处理带有认证头的 JSON 请求体,以及如何处理带有可选参数的查询字符串。代码结构清晰,易于理解和维护。

Last updated