RESTful API

RESTful API(Representational State Transfer API)是一种基于 REST 架构风格的应用程序接口设计方法,广泛用于 Web 服务和系统之间的数据交换。REST 由 Roy Fielding 在 2000 年的博士论文中首次提出,强调无状态性、客户端 - 服务器分离、统一接口、可缓存性等原则。RESTful API 的核心是通过 HTTP 协议进行资源的创建、读取、更新和删除操作(CRUD)。

RESTful API 的特点

  • 无状态性:每个请求都包含了所有必要的信息(如身份验证信息),服务器不会在请求之间保留客户端的状态。
  • 客户端 - 服务器架构:客户端负责用户界面和用户体验,服务器负责数据存储和业务逻辑,二者相互独立。
  • 统一接口:RESTful API 使用标准的 HTTP 动词(GET、POST、PUT、DELETE 等)进行操作,接口设计规范一致,易于理解和使用。
  • 可缓存性:响应数据可以被标记为可缓存,以提高性能和减少服务器负载。
  • 分层系统:通过中间层(如负载均衡器、代理服务器)提升系统的可伸缩性和安全性。
  • 按需编码:服务器可以将代码或脚本发送到客户端执行,以增强客户端功能。

HTTP 动词

  • GET:用于读取资源,不会对服务器上的资源造成任何影响。
  • POST:用于创建新资源或提交数据,服务器处理请求后创建新资源。
  • PUT:用于更新现有资源,将客户端提供的数据覆盖服务器上的资源。
  • DELETE:用于删除服务器上的资源。
  • PATCH:用于部分更新资源,改变资源的部分内容。

URL 设计

RESTful API 使用统一资源标识符(URI)来表示资源,每个资源有一个唯一的 URL。资源之间的关系通过 URL 层级表示。

示例 URL 设计:

  • GET /books:获取所有图书列表。
  • GET /books/{id}:获取特定 ID 的图书。
  • POST /books:创建新图书。
  • PUT /books/{id}:更新特定 ID 的图书。
  • DELETE /books/{id}:删除特定 ID 的图书。

响应状态码

RESTful API 使用 HTTP 状态码来表示请求的处理结果:

  • 200 OK:请求成功,返回数据。
  • 201 Created:资源创建成功。
  • 204 No Content:请求成功,无返回内容。
  • 400 Bad Request:请求无效或格式错误。
  • 401 Unauthorized:请求未经授权。
  • 404 Not Found:请求的资源不存在。
  • 500 Internal Server Error:服务器内部错误。

总结

RESTful API 是一种简单、灵活、易于扩展的 Web 服务设计方法,通过标准的 HTTP 协议和动词进行操作,使得客户端和服务器之间的通信更加直观和高效。它适用于各种规模的 Web 应用程序,从小型项目到大型分布式系统。