路由

路由是 Silent 框架的核心功能之一,它负责将 HTTP 请求映射到相应的处理函数。本文将详细介绍 Silent 框架的路由系统。

基本路由

Silent 框架使用 Route 结构体来定义路由。最基本的路由定义包括路径和处理函数:

use silent::prelude::*;

#[handler]
async fn hello() -> &'static str {
    "Hello, world!"
}

let route = Route::new("").get(hello);

HTTP 方法

Silent 支持所有标准的 HTTP 方法:

let route = Route::new("api")
    .get(get_handler)      // GET 请求
    .post(post_handler)    // POST 请求
    .put(put_handler)      // PUT 请求
    .delete(delete_handler); // DELETE 请求

路由参数

你可以在路由路径中使用参数,通过 :参数名 的形式定义:

路由嵌套

Silent 支持路由嵌套,这对于构建 API 版本或模块化路由非常有用:

路由组

你可以将相关的路由组织在一起,使代码结构更清晰:

通配符路由

Silent 支持使用通配符来匹配多个路径:

最佳实践

  1. 路由命名要清晰、语义化,反映资源的层级关系

  2. 合理使用路由嵌套,避免过深的嵌套层级

  3. 相关的路由功能要组织在一起

  4. 使用合适的 HTTP 方法来表达操作语义

  5. 路由参数命名要有意义,便于理解

示例

这是一个完整的路由示例,展示了如何组织一个博客系统的 API:

这个示例展示了如何组织一个包含用户和博客文章管理的 API 系统,包括评论功能。路由结构清晰,易于维护和扩展。

Last updated