API DESIGN · 接口设计

好的 API,好到"不用文档"

API 是前后端协作的"合同",也是产品能力的对外窗口。本讲从 RESTful 设计规范、版本管理、错误处理到安全与性能,讲透一套可落地、可演进的接口设计方法论——让联调顺畅、让接口稳定。

01资源化 URL 设计
02HTTP 方法与状态码
03版本管理与错误规范
04安全、限流与文档
PAIN POINTS

接口没设计好,联调就是灾难

🔀

URL 乱七八糟,没有规则

getOrder、orderGet、query_order 各写各的,前端对接全靠问,接口文档过期。

💥

改一个字段,前端全崩

没有版本管理,后端改字段结构直接破坏线上,前端连夜加班返工。

🌫️

错误信息让人猜谜

永远返回"操作失败"或一堆堆栈,前端不知道错在哪,用户体验一塌糊涂。

PRINCIPLES

API 设计的核心原则

🔤

资源化 URL

用名词表示资源(/users、/orders/123),动词由 HTTP 方法承担。

🧭

状态码语义化

200/201/400/401/404/500 各归其位,调用方一眼看懂结果。

📦

统一响应结构

data/code/message 一致的包裹结构,前端解析逻辑统一。

🔄

版本管理

URL 或 Header 携带版本号,破坏性变更走新版本,向后兼容。

📝

文档即契约

OpenAPI/Swagger 自动生成文档,前后端与第三方按契约协作。

🔐

安全默认

鉴权、HTTPS、限流、参数校验,安全是 API 的第一属性。

STATUS CHART

HTTP 状态码速查表

状态码是接口的"第一句话",用对状态码,问题定位快一半。

状态码含义典型场景
200成功GET 查询、更新成功
201已创建POST 新建资源
204无内容删除成功、空响应
400参数错误校验失败、格式不对
401未认证未登录 / Token 失效
403无权限已登录但无权访问
404资源不存在URL 或资源未找到
409冲突重复提交、状态冲突
429限流请求过于频繁
5xx服务端错误500 内部错误 / 502 网关 / 503 不可用
BEST PRACTICE

高频实践规范

01

错误信息具体化

返回 code + message + 字段级错误详情(fieldErrors),前端能精确定位并友好提示。

02

分页与过滤标准化

统一 page/size/sort/filter 参数,响应返回 total 与分页信息,避免前端各自发明。

03

幂等与重试

写操作支持幂等键,配合超时重试,网络抖动也不产生重复数据。

04

鉴权与限流

JWT/OAuth 统一鉴权,按用户/IP 限流防刷,关键接口审计日志。

USE CASES

好的 API 用在哪

🌐

前后端分离

规范 API 是前后端并行开发、高效联调的前提,也是团队协作的基石。

🔌

第三方开放平台

对外提供能力,清晰稳定的 API 决定开发者是否愿意接入。

📱

多端统一

Web、App、小程序共用一套 API,设计一致性降低多端成本。

🧩

微服务间通信

服务间接口规范统一,配合契约测试保证分布式协作可靠。

接口混乱、联调痛苦

我们提供 API 架构设计与重构服务,让接口稳定、清晰、可长期演进。

FAQ

API 设计高频问答

REST 简单、缓存友好、生态成熟,是默认选择;GraphQL 适合客户端字段需求差异大、需要精准取数的场景。多数项目 REST 足够。
常用 URL 前缀 /v1/、/v2/,或 Header Accept 版本。向后兼容优先(新增字段不破坏),破坏性变更必须升版本并给迁移期。
无状态、跨端、分布式友好选 JWT;简单单机应用可用 Session。JWT 注意过期与吊销策略,敏感场景配合 Refresh Token。
先分段计时(网络/网关/业务/数据库),查慢 SQL 与 N+1 查询,配合链路追踪(OpenTelemetry)定位慢在哪个服务哪一步。
HTTPS 传输加密、统一鉴权与权限校验、参数校验防注入、限流防刷、敏感字段脱敏、接口审计日志、依赖漏洞扫描。
用 OpenAPI/Swagger 从代码注释生成文档,或接口定义驱动(Contract First);文档与代码同源,更新代码即更新文档。
对外开放、多端消费选 REST(语义清晰、生态好);内部服务间高吞吐调用选 RPC(gRPC 等,性能与强类型更优)。
资源用复数名词(/users)、层级用子资源(/users/123/orders)、操作动词化用 action(/orders/cancel);字段统一 camelCase 或 snake_case,全团队一个约定。

让接口成为团队的资产

编程新知提供 API 设计与后端开发服务,从契约到实现,让协作高效顺畅。