7 个版本

0.3.0 2021年10月20日
0.1.5 2019年5月20日

#1 in #toql

每月22次下载

MIT/Apache

11KB
156

Toql Rocket

使用 ToqlRocket

此 crate 增加了

  • Toql URL 查询参数
  • 包含页面计数信息的响应头
  • ToqlError 的 Responder

将此添加到您的 Cargo.toml

[dependencies]
toql_rocket = "0.3"

然后在您的 rocket 处理器中享受一些简化

use toql_rocket::prelude::{ToqlQUery, Counted};
#[get("/?<toql_query..>")]
pub async fn query(
    cache: &State<Cache>,
    mut conn: Connection<TodoDb>,
    toql_query: ToqlQuery,  //<!-- Get URL parameters with default values
) -> Result<Counted<Json<Vec<Todo>, MyError>>>  
{
    let mut toql = MySqlAsync::from(&mut *conn, &*cache);
    let (query, page) = toql_query.parse::<Todo>()?; //<!-- Parse into typesafe query
    let r = toql.load_page(query, page).await?;

    Ok(Counted(Json(r.0), r.1)) //<!-- Put page count information into headers
}

查看基于 Rocket、Toql 和 MySQL 的全功能 REST 服务器

许可证

Toql Rocket 在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。

依赖关系

~22–54MB
~1M SLoC