Actix使用

有 bin 文件时,如何运行 bin 文件

1
2
3
4
5
6
cargo run -p webservice --bin server1


# 进入指定项目目录下
cd webservice
cargo run --bin server1

当任何数据类型在 actix 中注册之后,就可以在 handler 中注入了。

web::Data<数据类型>

Actix-Web 把错误转化为 HTTP Response

Actix-Web 定义了一个通用的错误类型(struct):

  • Actix_web::error::Error
    • 它实现了 std::error::Error 这个 trait
  • 任何实现了 标准库 Error trait 的类型,都可以通过 ? 运算符,转化为 Actix 的 Error 类型,
  • Actix 的 Error 类型会自动转化为 HTTP Response,返回给客户端。
  • ResponseError trait: 任何实现该 trait 的错误均可转化为 HTTP Response 消息。
  • 内置的实现: Actix-Web 对于常见错误有内置的实现,例如:
    • Rust 标准 I/O 错误;
    • Serde 错误;
    • Web 错误,例如: ProtocolError,Uft8Error,ParseError 等等;
  • 其他错误类型:内置实现不可用时,需要自定义实现错误到 HTTP Response 的转换。

创建自定义错误处理器

  1. 创建一个自定义错误类型(struct/enum);
  2. 实现 From trait,用于把其他错误类型转化为该类型;
  3. 为自定义错误类型实现 ResponseError trait;
  4. 在 handler 里返回自定义错误类型;
  5. Actix 会把错误转化为 HTTP 响应。
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2023 ligongzhao
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信