RESTful API 响应设计规范:一个好用的 JSON 结构长什么样?
2024-06-28
有的接口返回数组,有的包 { code, data, message },有的 HTTP 200 但 body 里 code:500。客户端每接一个新接口都要写适配层——问题多半出在响应结构没有团队规范。
Envelope 是否必要
纯 REST 资源可直接返回对象或数组;企业 API 常用 { data, meta, errors } 统一扩展位。
关键是一致:同一产品线下所有 v1 接口同一种 envelope。
{
"data": { "id": 1, "name": "Alice" },
"meta": { "requestId": "abc-123" }
}错误响应
HTTP 状态码表达大类;body 里 machine-readable code + human message + details 数组(字段级错误)。
避免仅返回 { error: "something wrong" } 让前端无法分支处理。
分页
cursor:meta.nextCursor;offset:page/limit/total。选一种全站统一。
items 数组命名用 data、items 或资源复数,不要混用。
命名与时间
camelCase 与 snake_case 择一;JSON 里日期推荐 ISO 8601 字符串(UTC 或带 offset)。
布尔字段避免 is_ 前缀混用字符串 "true"。
演进策略
只加字段不删;删字段走 deprecate + 版本号。
breaking change 升 /v2/;OpenAPI 文档与 fixture 同步更新。