bangumi_api/common/error.rs
1use serde::{Deserialize, Serialize};
2
3/// Bangumi 统一错误响应结构体
4///
5/// 当 Bangumi 的 API 调用失败时,后端会返回该格式的错误信息。
6/// 该结构体可直接用于反序列化 JSON 错误响应,方便在客户端进行错误处理。
7#[derive(Debug, Clone, Deserialize, Serialize)]
8pub struct BangumiError {
9 /// 错误的标题,用于快速定位问题类型
10 /// 例如:"Unauthorized"、"ValidationError" 等
11 pub title: String,
12
13 /// 详细的错误信息,包含具体的错误原因、请求路径和方法
14 pub details: BangumiErrordetails,
15
16 /// 可选的请求 ID
17 /// 用于在日志系统中追踪某一次具体的请求,便于调试和排查问题
18 pub request_id: Option<String>,
19
20 /// 错误的详细描述,通常是一段可读性强的文字
21 /// 用于向用户展示具体的错误原因或建议的解决方式
22 pub description: String,
23}
24
25/// Bangumi 错误详情结构体
26///
27/// 包含本次请求的具体信息,帮助开发者快速定位问题发生的上下文。
28#[derive(Debug, Clone, Deserialize, Serialize)]
29pub struct BangumiErrordetails {
30 /// 具体的错误信息字符串
31 /// 例如:"user not found"、"invalid token" 等
32 /// 如果为 None,则表示未提供具体的错误信息
33 pub error: Option<String>,
34
35 /// 请求的路径
36 /// 例如:"/api/user/info"
37 pub path: String,
38
39 /// 请求的 HTTP 方法
40 /// 例如:"GET"、"POST" 等
41 pub method: String,
42}