🌍 译介 · 编译自 Nordic APIs

高质量 REST API 设计的 8 个技巧

来自福特(Ford)内部 API 风格指南的 8 条实战经验。本文编译自 Nordic APIs(作者 Adriano Mota,2019),系统讲清 HTTP 方法、资源定义、URI 规范、版本化与状态码等 REST 设计基本功。

📅 更新于 2026-07-20 ⏱ 约 6 分钟阅读 🏷 译介
免费试用 YesApi Pro 查看全部定价 →
🌐本文由 YesApi Pro 团队编译Nordic APIs 的文章《8 Tips For Designing Quality REST APIs》,原作者 Adriano Mota(原文发布于 2019-03-05)。版权归原作者所有,内容仅供学习参考。查看英文原文 →
📌 核心结论
REST 仍是稳健标准;用对 GET/POST/DELETE/PUT;资源用复数、子资源表达属性;URI 别用 Java 方法名风格;版本化要一致(URI 路径最常用);默认 JSON;返回正确状态码。遵循这些约定,开发者上手更快、集成更顺。
📑 本文目录
  1. 理解 REST 标准
  2. 用对 HTTP 方法
  3. 定义资源
  4. 使用子资源
  5. 别用 Java 方法名模式
  6. 一致地版本化
  7. JSON 优于 XML
  8. 返回正确状态码
01

一、理解 REST 标准

尽管还有 SOAP、gRPC、GraphQL、Kafka 等标准,REST(表述性状态转移)仍是构建稳健 Web API 的可靠选择。使用 REST 时,设计必须牢记 HTTP 方法、JSON 格式与状态码。对多数 Web API 开发者,遵循 REST 惯例能产出高性能、易用的接口。

02

二、用对 HTTP 方法

在福特,我们主要依赖四种 HTTP 方法:GETPOSTDELETEPUT,它们能覆盖绝大多数操作。

方法CRUD 操作路径示例说明
GET读取/vehicles获取资源列表;具体信息用 URI 参数(如 /vehicles/{id}),切勿用 JSON Body 传查询参数
POST创建/vehicles新增资源记录
DELETE删除/vehicles/{id}从库里移除该资源,用参数标识,不用 Body
PUT更新/vehicles/{id}更新资源信息,用参数定位、用 Body 传新值
03

三、定义资源

资源(resource)是你要操作的实体(即领域)。若领域是 vehicle,URI 就指向 /vehicles。良好的命名约定很有用:在福特,领域实体/资源名一律用复数(vehicles 而非 vehicle),该规则同样适用于子层级与子资源。

04

四、使用子资源

有时资源需要某个特定属性,但 URI 不足以表达,这时用子资源(sub-resource)。例如已有 /api/vehicle,要取该车的 parts(零部件)信息,可建子资源 /api/vehicle/{id}/parts。对应的 CRUD 映射为:GET /vehicles/{id}/parts(读)、POST(建)、DELETE /vehicles/{id}/parts/{code}(删)、PUT(改)。

05

五、别用 Java 方法名模式

若你的 URI 像 /vehicles/listParts/vehicles/getComboData,就违背了全球 API 惯例。API 开发者应始终用资源、子资源与查询参数来组织 URI,避免任何面向对象语言的命名风格。取某车零部件列表应写作 /vehicles/{vin}/parts;给下拉框加载数据可用 /vehicles/orders/orders/vins

06

六、一致地版本化

服务演进时通常需要版本化。对外暴露给合作伙伴的 API,更新可能破坏客户端,因此发布全新版本是必要的。做法很简单:在 URI 中加入版本号,如 /api/v1/vehicles/ 是第一版;重构后用 /api/v2/vehicles/。建议用 OpenAPI 文档工具记录,既扩展服务又兼容老客户。但注意:若频繁出新版本(如已到第 5 版),说明设计阶段需要更审慎。

07

七、JSON 优于 XML

根据语言与框架,API 可返回 JSON、XML 或其他格式,但JSON 是 API 与 REST 服务的事实标准。返回 XML 并非不可,但需看业务规范;对公开接口,我们一律推荐 JSON。

08

八、返回正确状态码

并非所有接口都活在 200 的世界。认真做 API 设计,要为每种情况返回正确的 HTTP 状态码:

类别状态码含义
成功200/201/202/204OK / 已创建 / 已接受 / 无内容
客户端错误400/401/403/404/405/422/429错误请求 / 未认证 / 禁止 / 未找到 / 方法不允许 / 语义错误 / 请求过多
服务端错误500/502/503内部错误 / 网关错误 / 服务不可用
译者实战注 落地建议与延伸

需要快速落地?

YesApi Pro 私有部署、源码交付、当天上线,帮您把方案变为现实。

立即预约演示 →

常见问题

值得。相比 SOAP/gRPC/GraphQL,REST 仍是构建稳健、易用 Web API 的可靠标准,且生态与开发者熟悉度最高。

行业惯例用复数(如 /vehicles),福特等大企业也如此,子资源同样遵循。

最常见、最直观的是 URI 路径(/api/v1/...);也可用 Accept 头或查询参数,但路径法最通用。

YesApi Pro 内置 API 设计、文档、版本管理与开放门户,可一键生成符合 REST 约定的接口与 SDK,降低团队规范成本。
📚

继续阅读