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

相关推荐
360智汇云3 小时前
Golang Context 的巧妙应用:提高并发管理的艺术
web
TDengine (老段)5 小时前
TDengine 数学函数 DEGRESS 用户手册
大数据·数据库·sql·物联网·时序数据库·iot·tdengine
TDengine (老段)5 小时前
TDengine 数学函数 GREATEST 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
失散136 小时前
分布式专题——47 ElasticSearch搜索相关性详解
java·分布式·elasticsearch·架构
默 语7 小时前
消息中间件选型的艺术:如何在RocketMQ、Kafka、RabbitMQ中做出正确决策
java·架构·kafka·消息队列·rabbitmq·rocketmq·技术选型
小莞尔7 小时前
【51单片机】【protues仿真】基于51单片机主从串行通信系统
c语言·单片机·嵌入式硬件·物联网·51单片机
心之伊始8 小时前
RocketMQ 与 Kafka 架构与实现详解对比
架构·kafka·rocketmq
云宏信息9 小时前
【深度解析】VMware替代的关键一环:云宏ROW快照如何实现高频业务下的“无感”数据保护?
服务器·网络·数据库·架构·云计算·快照
Zender Han10 小时前
《从零搭建现代 Android 模块化架构项目(2025 最新实践)》
android·架构
骥龙11 小时前
2.5、物联网设备的“免疫系统”:深入解析安全启动与可信执行环境
物联网·安全