php api响应需统一json结构,含code、message、data三字段,推荐增加timestamp、version、request_id;错误响应须与成功结构一致;须经统一封装层实现,禁用直接输出。

PHP的API响应格式规范,核心是统一、可预测、易解析。不是简单“返回JSON”,而是建立一套前后端共同遵守的契约:所有接口无论成功或失败,都输出结构一致的JSON对象,字段含义固定,语义清晰。
必须包含的三个基础字段
标准响应体应始终包含以下字段,且类型和用途明确:
- code:整数型业务状态码(非HTTP状态码),如200表示成功,400表示参数错误,500表示服务异常;建议与HTTP状态码解耦,便于前端统一处理逻辑
- message:字符串型提示信息,面向开发者或终端用户,要求简洁、准确、无敏感信息(如不暴露数据库字段名)
-
data:混合类型(array/object/null),承载实际业务数据;空数据时显式设为
null或[],不省略
推荐补充的增强字段
在基础三字段之上,加入以下字段可提升健壮性与可维护性:
- timestamp:当前时间戳(秒级或毫秒级),用于客户端校验响应时效性或做缓存判断
-
version:API版本标识(如
"v1"),配合URL版本控制(/api/v1/users)更稳妥 - request_id:唯一请求标识,便于日志追踪与问题定位(尤其在微服务或多层网关场景)
错误响应需严格对齐成功结构
不能因出错就换格式——验证失败、未登录、资源不存在、服务器崩溃,都必须返回相同结构的JSON:
- 避免出现
{"error": "xxx"}或{"status": false, "msg": "xxx"}等非标格式 - HTTP状态码仍需合理使用(如401、403、404、500),但响应体结构不变
- 例如:参数校验失败应返回
{"code": 400, "message": "手机号格式不正确", "data": null}
实现层面的关键约束
光定规范不够,得靠代码机制兜底:
- 禁止控制器中直接
echo json_encode(...)或return ['code'=>...]——必须经过统一封装层 - 所有主动输出走重写的
Json响应类,所有异常流经全局中间件拦截并标准化包装 - 提供
$this->success($data)和$this->error($msg, $code)等快捷方法,内部自动注入timestamp等字段 - CLI环境(如队列任务、定时脚本)下禁用header输出,避免报错
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











