REST架构风格介绍

一.REST(表述性状态转移)

1.定义

REST(Representational State Transfer)是由 Roy Fielding 在 2000 年提出的一种软件架构风格,用于设计网络应用的通信模式。它基于 HTTP 协议,强调通过统一的接口(如标准 HTTP 方法)管理资源,实现客户端与服务器的解耦。

2.REST 的六大设计原则(约束)

(1)客户端-服务器分离

客户端处理用户界面和交互,服务器负责数据存储和业务逻辑。

资源导向:

资源:系统中可识别的实体(如用户、订单、文章),通过 URI(统一资源标识符)定位。

示例:

https://api.example.com/users/123 # 单个用户资源

https://api.example.com/posts # 文章集合资源

(2)统一接口(Uniform Interface)

资源通过 URI 标识,操作通过标准 HTTP 方法(GET、POST、PUT、DELETE)执行。

(3)无状态(Stateless)

每个请求包含完整的上下文信息,服务器不存储客户端状态。

优点:可扩展性强、易于缓存和负载均衡。

(4)可缓存(Cacheable)

响应需明确标识是否可缓存,减少重复请求。

(5)分层系统(Layered System)

客户端无需知道直接连接的服务器以外的层级(如代理、网关)。

(6)按需代码(Code-On-Demand,可选)

服务器可返回可执行代码(如 JavaScript)扩展客户端功能。

3.RESTful 定义

RESTful 是指符合 REST 架构风格的设计规范的应用或服务。

一个 API 或服务若遵循 REST 的六大约束,即可称为 RESTful API。

4.REST vs. RESTful

REST:理论架构风格。

RESTful:符合 REST 原则的具体实现(如大多数现代 Web API)。

注意:严格遵循 REST 所有原则的 API 较少,常见的是 "REST 风格" 或 "准 RESTful" 实现。

5.状态码

6.服务器框架

Python:Flask、Django REST Framework。

Java:Spring Boot、JAX-RS。

Node.js:Express、NestJS。

Go:Gin、Echo。

二. RESTful vs. SOAP/RPC

相关推荐
90后小陈老师27 分钟前
WebXR教学 09 项目7 使用python从0搭建一个简易个人博客
开发语言·python·web
星川皆无恙2 小时前
大模型学习:Deepseek+dify零成本部署本地运行实用教程(超级详细!建议收藏)
大数据·人工智能·学习·语言模型·架构
AI_Auto3 小时前
数字化转型- 数字化转型路线和推进
架构·数字化·制造业
中草药z3 小时前
【MySQL】架构和存储引擎
架构·memory·innodb·csv·存储引擎·myisam·mysql架构
搬砖的小码农_Sky4 小时前
FPGA: XILINX Kintex 7系列器件的架构
fpga开发·架构·硬件架构
weifont12 小时前
聊一聊Electron中Chromium多进程架构
javascript·架构·electron
国际云,接待15 小时前
云服务器的运用自如
服务器·架构·云计算·腾讯云·量子计算
好吃的肘子18 小时前
Elasticsearch架构原理
开发语言·算法·elasticsearch·架构·jenkins
编程星空18 小时前
架构与UML4+1视图
架构