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}