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

相关推荐
杨杨杨大侠1 小时前
Spring AI 系列(一):Spring AI 基础概念与架构入门
人工智能·spring·架构
潘锦1 小时前
Multi-Agent 系统的主从架构
架构·agent·ai编程
门思科技11 小时前
LoRaWAN 的网络拓扑全解析:架构、原理与应用实践
服务器·网络·人工智能·科技·物联网·架构
小马哥编程13 小时前
【软考架构】第6章 数据库基本概念
数据库·oracle·架构
OEC小胖胖15 小时前
【React 设计模式】受控与非受控:解构 React 组件设计的核心模式
前端·react.js·设计模式·前端框架·web
xiaoye370816 小时前
微服务之间的调用关系如何处理,才能防止循环依赖
微服务·云原生·架构
TDengine (老段)16 小时前
TDengine IDMP 运维指南(4. 使用 Docker 部署)
运维·数据库·物联网·docker·时序数据库·tdengine·涛思数据
TDengine (老段)16 小时前
TDengine IDMP 最佳实践
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据
高阳言编程16 小时前
7. 多处理机
架构
伴杯猫18 小时前
【ESP32-IDF】高级外设开发3:I2S
c语言·单片机·嵌入式硬件·mcu·物联网·esp32·esp-idf