AlexSJC
AlexSJC
发布于 2026-06-28 / 19 阅读
0
0

HTTP JSON API 规范

导语

在前后端分离与微服务架构盛行的今天,设计一套统一、清晰且具备高可扩展性的 API 响应规范,是保障团队协同效率、降低系统对接成本的关键。

本文将介绍并解析一种优秀的 HTTP JSON API 规范,并探讨其设计背后的逻辑与最佳实践。

响应体

返回的数据包含在 HTTP 响应体中。数据必须是一个 JSON Object,包含 codemsgdata 共 3 个字段,其中 data 是可选的。

{
  "code": 0,
  "msg": "success",
  "data": { … } 
}
  1. code (状态码)

    • 类型:整型数字(Integer

    • 作用:精确表达业务逻辑的执行结果。它不仅区分成功与失败,还承载具体的业务错误分类。

  2. msg (说明信息)

    • 类型:字符串(String)

    • 作用:对状态码的文字说明。既可以是面向开发者的调试信息,也可以是直接展示给终端用户的友好提示。

  3. data (数据载体)

    • 类型:对象(Object)/ 数组(Array)

    • 作用:承载具体的业务响应数据。在无返回数据或操作失败时,该字段可以省略。

状态码

为了解决状态码杂乱无章、难以维护的问题,本规范引入了 5 位数阶梯式状态码 机制。

A-BB-CC

   A       BB       CC
   │       │        │
   │       │        └── 具体错误序号 (00-99)
   │       └─────────── 业务模块编号 (00-99)
   └─────────────────── 状态大类 (0=success)

code 共 5 位数字,第一位为状态大类(A),中间两位为业务模块编号(BB),最后两位为具体错误序号(CC)。

大类划分

首位

大类

对应 HTTP 状态码

0

成功

200 OK

1

请求错误

400 Bad Request

2

鉴权错误

401 Unauthorized / 403 Forbidden

3

资源错误

404 Not Found

4

业务错误

422 Unprocessable Entity

5

系统内部错误

500 Internal Server Error

6

依赖服务错误

502 Bad Gateway / 503 Service Unavailable

7

限流

429 Too Many Requests

8

(保留)

-

9

(保留)

-

结语

统一的 API 规范不仅能够显著降低前后端沟通成本,还能使自动化测试、接口监控与网关告警的建设事半功倍。

通过精细化的 A-BB-CC 状态码设计与合理的 HTTP 状态映射,团队可以构建出既符合业界标准又具备高度灵活性的企业级 API 服务体系。

参考资料

https://cloud.tencent.com/developer/article/2327291

https://www.cnblogs.com/lxwphp/p/15454123.html

https://lbs.amap.com/api/webservice/guide/tools/info

https://developer.work.weixin.qq.com/document/path/90313


评论