案例库 · 软件与 IT · 技术决策 · 2000–2010
REST标准化了网络接口,成为默认的API架构
菲尔丁的论文将网络自身的约束变成一种风格,所有API都遵循它
加州大学尔湾分校
那一手
罗伊·菲尔丁在2000年加州大学尔湾分校的博士论文第五章中定义了表述性状态转移,描述了网络背后的架构风格:客户端-服务器分离、无状态请求、缓存、分层系统和统一接口。
核心举措是统一接口:通过URL标识资源,通过表述操作资源,消息自描述。不是为每个服务发明一个RPC调用,而是让网络在每种资源上复用同一小套HTTP动词。
这一约束集——由共同撰写HTTP/1.1的同一人所写——从网络本身扩展到API设计。REST成为暴露服务的默认方式,浏览器的通用客户端无需专门代码即可与任何符合标准的服务器交互。
为什么管用
- 一个统一接口意味着任何HTTP客户端都能与任何REST服务交互
- 无状态性让任何服务器处理任何请求,水平扩展变得简单
- 基于资源的设计将客户端与实现细节解耦,双方都能演进
- 自描述消息让中介无需特定业务逻辑即可缓存、转换和路由
值了多少标准化接口,而非实现聪明
可以搬走什么
制胜的约束是应用于共享接口的那种:当每个客户端对每个服务器说同样的动词时,生态系统无需协调实现就能扩展。
后来呢
REST已成为公共Web API的主导架构,塑造了每个主要平台的开发者故事和HTTP服务工具。其原则后来被编码在OpenAPI等API规范中,其无状态资源模型至今仍是API经济的基础。
资料来源
- Architectural Styles and the Design of Network-based Software Architectures, Chapter 5: Representational State Transfer (REST)
- RFC 2616: Hypertext Transfer Protocol — HTTP/1.1
发现哪里写错了?告诉我们。