< 返回版块

wyanlord 发表于 2020-04-19 21:26

Tags:rust,web,actix-web

github: https://github.com/wyanlord/rust-web-demo

旨在熟练rust的用法,对于web开发出身的来说,可以互相借鉴学习

欢迎在issue中提交问题

欢迎在分支上提交你的优秀的code

  • 使用actix-web作为基础的web框架
  • mysql使用的是sqlx
  • redis使用的是mobc_redis,一种redis的连接池封装
  • log使用的是log4rs

问题

  • actix-web的中间件,无法获取request的body以及response的body [已修复]
  • actix-web的请求体,无法支持请求上下文kv存储,如request-id等
  • log4rs日志,目前不支持异步,而且不支持kv结构存储,json后不雅观
  • sqlx暂不支持orm,需要自己手动拼写sql
  • redis暂不支持集群Cluster
#[actix_rt::main]
async fn main() -> Result<(), Box<dyn Error>> {
    // 初始化mysql连接池
    db::mysql::init_pool(db::mysql::create_pool().await);

    // 初始化redis连接池
    db::redis::init_pool(db::redis::create_pool());

    // 初始化日志文件
    log::init_log();

    // 创建app
    let app_factory = || {
        App::new()
            // 自定义预处理中间件
            .wrap(handler::AccessLog)
            // api相关的路由
            .service(handler::api_routes())
            // 静态资源相关的路由
            .service(handler::static_routes())
    };

    // 运行服务,绑定监听端口
    HttpServer::new(app_factory).bind(conf::global().addr())?.run().await?;

    Ok(())
}

评论区

写评论
solarsail 2020-04-21 18:09

actix-web的中间件,无法获取request的body以及response的body

这个有官方例子

作者 wyanlord 2020-04-20 11:35

没试过,最好是库本身支持。 对以下内容的回复:

songday 2020-04-20 10:01

Redis集群的支持,可以自己根据Redis返回来做重定向吗? 之前用HiRedis,也是不支持集群,得自己做重定向

1 共 3 条评论, 1 页