3个版本
0.1.2 | 2024年2月28日 |
---|---|
0.1.1 | 2024年2月28日 |
0.1.0 | 2024年2月28日 |
在 #status-code 中排名 6
9KB
149 行
axum-enum-error
MSRV: 1.65.0
轻松将枚举用作Axum响应类型。
示例用法
#[derive(serde::Serialize)]
struct SomeData {
meow: String,
}
#[derive(EnumIntoResponse)]
enum ErrorResponse {
#[status_code(UNAUTHORIZED)]
Unauthorized, // 401, empty body
#[status_code(FORBIDDEN)]
#[message("mew")]
Forbidden, // 403, body = {"message": "mew"}
#[status_code(BAD_REQUEST)]
BadRequest(SomeData),
#[status_code(INTERNAL_SERVER_ERROR)]
InternalServerError(#[key("error")] String), // 500, body = {"error": STRING},
}
lib.rs
:
简单方式使用枚举作为Axum响应 MSRV: 1.65.0
示例用法
#[derive(axum_enum_response::EnumIntoResponse)]
enum ErrorResponse {
#[status_code(UNAUTHORIZED)]
Unauthorized, // 401, empty body
#[status_code(FORBIDDEN)]
#[message("mew")]
Forbidden, // 403, body = {"message": "mew"}
#[status_code(INTERNAL_SERVER_ERROR)]
InternalServerError(#[key("error")] String), // 500, body = {"error": STRING}
}
您还可以使用任何实现了 serde::Serialize
的结构体作为字段,如下所示
#[derive(serde::Serialize)]
struct SomeData {
meow: String,
}
#[derive(axum_enum_response::EnumIntoResponse)]
enum ErrorResponse {
#[status_code(BAD_REQUEST)]
BadRequest(SomeData), // 400, body = {"meow": STRING}
}
依赖项
~280–730KB
~17K SLoC