API设计这9个错误,犯一次就够了

  • 约1503字
  • 技术
  • 2026年4月2日

每次接口返回格式不一样,前端解析到崩溃;某个字段悄悄改名后端没通知,全站炸了;错误码乱七八槽,运维排查问题无从下手——这些场景是不是很眼熟?

我带过的项目里,至少有80%出现过以上问题。API设计看似简单,但真正做好的人不多。今天把这9个最常见的错误列出来,帮你一次性绕过这些坑。

错误一:返回格式不统一

同一个项目里,有的接口返回 {code: 200, data: {...}},有的返回 {status: "ok", result: {...}},还有的直接返回数组。

前端同学每次对接新接口都要问:「这个接口怎么解析?」

正确做法:整个项目统一返回格式。最推荐的是标准的 {code, data, message} 结构:

{
  "code": 200,
  "data": {...},
  "message": "success"
}

其中 code 用数字表示业务状态码,message 给用户看,data 才是真正的业务数据。

错误二:没有版本号

接口直接挂在 /api/users/api/orders,没有任何版本标识。某天后端改了个字段名,旧版客户端全部报错。

正确做法:URL中加入版本号 /api/v1/users/api/v2/users。向后兼容的原则是:新版本能响应的内容,旧版本客户端也能正常解析。

错误三:HTTP方法乱用

有人把 GET 请求用来做数据变更,或者在一个 POST 请求里同时做增删改查。看起来省事了,后续维护和调试全是坑。

正确做法

  • GET:查询
  • POST:新增
  • PUT:全量更新
  • PATCH:部分更新
  • DELETE:删除

别偷懒,方法选对了,日志排查和权限控制都会简单很多。

错误四:分页参数不一致

同样是分页,有的接口用 page+pageSize,有的用 offset+limit,有的用 start+count。一个项目里三四种写法,前端要写三套逻辑。

正确做法:整个项目统一分页参数,推荐 page+pageSize(页码+每页数量),直观且符合用户习惯。返回时记得带上 totalhasMore 字段。

错误五:错误信息没有标准

错误响应有的返回 {error: "用户不存在"},有的返回 {code: 404, msg: "not found"},还有的直接返回 500 加一段堆栈信息。

正确做法:建立统一的错误码体系。建议区分「业务错误」和「系统错误」:

// 业务错误(4开头)
{ "code": 4001, "message": "用户名已存在" }

// 系统错误(5开头)
{ "code": 5001, "message": "服务暂不可用" }

前端可以根据错误码做统一的错误提示和重试逻辑。

错误六:字段命名不规范

有的接口用 userId,有的用 user_id,还有的用 userIduid 混用。JSON 本身的蛇式/驼峰不是问题,问题是同一个项目里不统一。

正确做法:要么全项目驼峰,要么全项目蛇式。最重要是团队约定、文档统一、代码审查时检查。

错误七:没有说明文档

接口做好了扔给前端:「自己看吧。」没有文档,没有示例,没有变更记录。

正确做法:用 Swagger / OpenAPI 文档自动生成。接口变更时及时更新文档,并在群里通知前端负责人。文档是最好的沟通方式,比口头交接靠谱一百倍。

错误八:敏感数据明文返回

用户密码、手机号、身份证号直接放在返回结果里。前端显示没问题,但这就是一个安全炸弹。

正确做法:后端返回脱敏数据,或标记哪些字段需要前端二次处理。密码字段永远不要返回。

错误九:没有做幂等设计

重复点击「提交」按钮,订单创建了两条;刷新页面,表单数据被重复提交。这些问题不是前端的事,是后端没有做幂等。

正确做法:对于写操作接口,用唯一标识符(订单号、token)保证幂等性。POST 请求可以用「创建并返回」或「如果存在则返回」两种策略。


API 设计做得好不好,不是看你的接口多规范,而是看前端对接时省不省心。上面的9个错误里,哪怕只做到一半,你的接口质量也已经超过大多数项目了。

前端工程师最怕的不是接口多,而是「同一个项目的接口像不同人写的」。把规范定下来,按规则执行,联调的摩擦能少一半。

相关文章

测试覆盖率从30%到80%:我的AI测试实战

单元测试覆盖率总是上不去?手写测试太累太慢?本文分享如何用AI工具分钟级生成单元测试,将覆盖率从30%提升到80%,包含具体工具、提示词和实操步骤。

查看更多

RESTful API避坑指南

好的API设计能让前后端协作效率翻倍,错误的设计则会让团队陷入无休止的沟通泥潭。本文从真实踩坑经历出发,总结5个常见API设计错误与对应解决方案,帮助开发者一次性写出好维护的接口。

查看更多

图书城整体迁移至阿里云完毕

经过一个多星期的调试,图书城网站及所有后台程序这周已经完全迁移到阿里云上去了。 之前的云服务器60G硬盘不出意料的在迁移2天后就满了,所以刚又增加了200G磁盘空间,和第一块数据磁盘一样,仍需要另行挂载。

查看更多