10个版本
0.2.7 | 2024年6月16日 |
---|---|
0.2.6 | 2024年6月14日 |
0.2.1 | 2024年3月10日 |
0.2.0 | 2023年6月13日 |
0.1.7 | 2023年4月26日 |
#11 in #proper
12,962 每月下载量
在 actix-web-thiserror 中使用
20KB
443 行
actix-web-thiserror
一个扩展 thiserror crate 功能以自动返回适当的 actix-web 响应的crate。
文档
错误定义
use actix_web_thiserror::ResponseError;
use thiserror::Error;
#[derive(Debug, Error, ResponseError)]
pub enum Base64ImageError {
#[response(reason = "INVALID_IMAGE_FORMAT")]
#[error("invalid image format")]
InvalidImageFormat,
#[response(reason = "INVALID_STRING")]
#[error("invalid string")]
InvalidString,
}
错误实现
pub async fn error_test() -> Result<HttpResponse, Error> {
Err(Base64ImageError::InvalidImageFormat)?
}
错误响应
reason
是一个字符串,可以根据需要以某种形式提供给客户端以解释错误。这里是一个可以本地化的枚举。
注意: 此响应已通过 ResponseTransform
格式化。要指定自定义的 ResponseTransform,实现 ResponseTransform
并在您的 derive 下添加 #[response)]
。
{
"result": 0,
"reason": "INVALID_IMAGE_FORMAT"
}
错误记录
当错误通过HTTP响应返回时,错误文本会自动打印到日志中。
Apr 23 02:19:35.211 ERROR Response error: invalid image format
Base64ImageError(InvalidImageFormat), place: example/src/handler.rs:5 example::handler
依赖项
~15–26MB
~465K SLoC