首页 / 百科 / REST

REST

开发

表述性状态转移(Fielding, 2000)

REST 是 Roy Fielding 2000 年博士论文提出的架构风格:以资源为中心、用统一接口(HTTP 动词)与表述(JSON 等)交互,无状态与可缓存是其核心约束,奠定了现代 Web API 的设计基调。

出处与六大约束

REST 出自 Roy Fielding 的博士论文《Architectural Styles and the Design of Network-based Software Architectures》(加州大学欧文分校,2000)第五章——他正是 HTTP/1.0 与 1.1 的主要作者。六大约束:客户端-服务器、无状态、可缓存、统一接口、分层系统、按需代码(可选)。

资源与动词

URL 表示名词(/users/42/orders),HTTP 方法表示动作:GET 读、POST 建、PUT 全量替换、PATCH 部分更新(RFC 5789,2010)、DELETE 删。状态码承载体结果:201 + Location 头返回新建资源、422 表达校验失败(RFC 9110 时代 400 也可)。URL 里不出现动词(/getUser 是反模式)。

RESTful 与现实折中

严格 REST(HATEOAS 超媒体驱动)在工程中很少完整实现,多数"RESTful API"只取资源建模 + 统一动词 + JSON 表述的子集。复杂查询、批量与强关系场景,GraphQL(Facebook,2015 开源)与 gRPC(Google,HTTP/2 二进制协议)是常见替代,三者分别赢在灵活性、前端自助与性能。

相关工具

相关词条