# API 响应规范

## 统一响应结构

```go
type Response struct {
    Code      int         `json:"code"`                  // 业务状态码，0=成功
    Status    int         `json:"status"`                // HTTP 状态码
    Timestamp string      `json:"timestamp"`             // RFC3339 东八区
    Data      interface{} `json:"data"`                  // 业务数据
    Message   string      `json:"message,omitempty"`     // 消息
    Error     string      `json:"error,omitempty"`       // 错误详情
}
```

## 使用函数

| 场景 | 函数 |
|------|------|
| 查询成功 | `ResponseSuccess(c, data)` |
| 操作成功 | `ResponseSuccessWithMessage(c, data, "msg")` |
| 普通错误 | `ResponseError(c, code, "msg")` |
| 详细错误 | `ResponseErrorWithDetail(c, code, "msg", err)` |

## HTTP 状态码映射

| 业务码 | HTTP 状态码 |
|--------|-------------|
| CodeSuccess | 200 |
| CodeParamError, CodeValidationFail | 400 |
| CodeUnauthorized | 401 |
| CodeForbidden | 403 |
| CodeNotFound | 404 |
| CodeTimeout | 408 |
| 其他 | 500 |
