RESTful API

RESTful API(Representational State Transfer)是由 Roy Fielding 于 2000 年在博士论文中提出的一种接口设计风格,如今已成为 Web 服务的主流范式。它的出发点很简单:把业务能力看作可寻址的"资源",再借助 HTTP 自身的语义去操作这些资源,完成常见的增删改查。

RESTful API 的设计要点

  • 无状态:每个请求自带完整信息(如凭证),服务器无需保存会话状态。
  • 前后端分离:客户端只管展示与交互,服务端负责数据与业务。
  • 统一接口:以 HTTP 动词(GET、POST、PUT、DELETE 等)表达动作,规范一致。
  • 支持缓存:响应可标注为可缓存,降低延迟与服务器压力。
  • 分层架构:可由网关、负载均衡等中间层扩展系统能力。

HTTP 动词的含义

  • GET:查询资源,不改变服务端状态。
  • POST:新建资源或提交处理请求。
  • PUT:整体更新资源,用提交内容替换原资源。
  • DELETE:移除指定的资源。
  • PATCH:只更新资源的局部字段。

URL 设计建议

在 REST 风格中,URI 只用来表示资源本身,动词交给 HTTP 方法,名词用复数、层级表达从属关系。一个典型的图书接口可以这样设计:

  • GET /books:获取全部图书。
  • GET /books/{id}:按 ID 查询单本图书。
  • POST /books:新增一本图书。
  • PUT /books/{id}:整体更新指定图书。
  • DELETE /books/{id}:删除指定图书。

响应状态码

调用方依据 HTTP 状态码即可判断请求结果:

  • 200 OK:处理成功并返回数据。
  • 201 Created:资源创建成功。
  • 204 No Content:成功但无返回体。
  • 400 Bad Request:请求参数有误。
  • 401 Unauthorized:未认证或认证失败。
  • 404 Not Found:资源不存在。
  • 500 Internal Server Error:服务端发生异常。

小结

RESTful API 之所以流行,在于它依赖 HTTP 的既有语义,学习成本低、可扩展性好,几乎天然适配各类规模的 Web 应用,从简单的单体服务到庞大的分布式系统都能受益。