RESTful 架构风格:设计原则与最佳实践

Executive Summary

核心观点(金字塔原理)

结论先行: RESTful架构的核心设计原则是”用URI定位资源,用HTTP方法描述操作”,实现资源的统一接口访问。

支撑论点:

  1. REST的四大核心特点:资源、统一接口、URI和无状态
  2. 每个URI代表一种资源,客户端通过HTTP动词对资源进行操作
  3. URI应使用名词复数形式,避免包含动词,动作应体现在HTTP方法中

SWOT 分析

维度 分析
S 优势 接口统一规范、无状态易于扩展、语义清晰、符合HTTP协议设计理念
W 劣势 对复杂操作表达能力有限、需要团队统一理解和遵守规范
O 机会 微服务架构、开放API平台、前后端分离项目
T 威胁 设计不规范可能导致URI包含动词等常见错误

适用场景

  • Web API接口设计
  • 微服务间的通信协议规范
  • 面向资源的系统架构设计

RESTful架构风格

  • RESTRepresentational State Transfer的缩写,可译为”表现层状态转化”。REST最大的几个特点为:资源、统一接口、URI和无状态。

RESTful架构就是用URI定位资源,用HTTP方法描述操作。

资源
  • 资源常见的载体为json、面向用户的一组数据集,
综合上面的解释,总结一下什么是RESTful架构:
  1. 每一个URI代表一种资源;
  2. 客户端和服务器之间,传递这种资源的某种表现层;
  3. 客户端通过几个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。
RESTful设计误区
  • 最常见的一种设计错误,就是URI包含动词。因为”资源”表示一种实体,所以应该是名词,且为复数形式,URI不应该有动词,动词应该放在HTTP协议中。
举例:
  • GET /collection:返回资源对象的列表(数组)
  • GET /collection/resource:返回单个资源对象
  • POST /collection:返回新生成的资源对象
  • PUT /collection/resource:返回完整的资源对象
  • PATCH /collection/resource:返回完整的资源对象
  • DELETE /collection/resource:返回一个空文档

理解RESTful