RESTful API

RESTful API 指遵循 REST 架构约束设计的接口。REST 概念源自 Roy Fielding 2000 年的博士论文,其要义是把一切操作对象抽象为资源,并通过 HTTP 协议自带的方法表达对资源的动作,从而让接口既直观又易于与其他系统集成。

RESTful 的几项原则

  • 无状态请求:服务端不记忆调用方上下文,每个请求独立可解释。
  • 职责分离:表现层与服务端解耦,各自独立演进。
  • 接口统一:借助标准 HTTP 方法完成对资源的各种操作。
  • 可缓存结果:合理利用缓存机制提升整体效率。
  • 层次化:可通过中间件灵活扩展,增强安全与吞吐。

HTTP 动词速览

  • GET:只读操作,获取资源表示。
  • POST:创建资源,或执行需要提交数据的动作。
  • PUT:用整份表示替换目标资源。
  • DELETE:删除指定资源。
  • PATCH:对资源做部分字段的修改。

URI 怎么设计

推荐做法是:名词表示资源集合,单条资源用 ID 定位,动作一律由方法承担,避免在路径里出现动词。以图书为例:

  • GET /books:列出图书集合。
  • GET /books/{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 应用间通信的事实标准之一。