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

相关推荐
海宇数据7 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化
翼龙云_cloud8 小时前
亚马逊云服务器服务代理商:Bedrock 实践经验 Serverless 架构下的 AI 自动化落地
服务器·架构·serverless·云计算·aws
ShineWinsu8 小时前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
烛影摇红透纱窗8 小时前
AI从零介绍代码架构的复盘(含要使用的提示词)
人工智能·架构
三佛科技-134163842129 小时前
20W~200W副边反馈SSR隔离方案HN1562+碳化硅MOS(含光耦817,431)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
小天源10 小时前
从 Nginx 日志到访问分析:轻量化网站监测服务的架构实践
jvm·nginx·网络安全·架构·网络监控
数据工匠老o10 小时前
异构数据库DDL同步:260条链路的结构变更自动适配方案
数据库·架构
专注仿真11 小时前
ThinkPHP6 API接口开发实例:从零搭建RESTful风格接口
后端·php·restful
破烂三角裤11 小时前
AI 应用上线后如何判断质量:Prompt 版本、评测集与可观测性
架构
第404号工位11 小时前
手机到底有没有偷听我们?我抓包了 72 小时,抓到了真凶
linux·人工智能·架构