REST架构
定义
REST(表述性状态转移)是由Roy Fielding在2000年提出的软件架构风格,用于设计网络应用程序。它的核心理念是将所有内容视为资源,并通过资源的表述来传递状态。 REST架构基于以下关键约束:
- 它要求客户端和服务器分离,通过统一接口通信;服务器不保存客户端状态(无状态);支持缓存机制来提高性能;采用分层系统设计;使用标准HTTP方法(GET、POST、PUT、DELETE等)来操作资源。
- 每个资源都有唯一的标识符(URI),客户端通过HTTP方法和URI来请求资源的特定表述(如JSON、XML等)。这种设计使系统具有更好的可扩展性、简单性和可维护性。
涉及到的技术栈
技术名称 | 作用 |
---|---|
REST | 表述性状态转移的架构风格,通过HTTP协议实现资源的表现层状态转化 |
HTTP Methods | REST架构中的基本操作方法,包括GET、POST、PUT、DELETE等 |
GET | 用于获取资源,是幂等的,不会改变资源状态 |
POST | 用于创建新资源,非幂等,每次调用会产生新的资源 |
PUT | 用于更新资源,是幂等的,多次调用结果相同 |
DELETE | 用于删除资源,是幂等的,多次调用结果相同 |
HTTP状态码 | 表示服务器响应状态的三位数字代码 |
2xx状态码 | 表示请求成功,如200(OK)、201(Created) |
3xx状态码 | 表示重定向,如301(永久重定向)、302(临时重定向) |
4xx状态码 | 表示客户端错误,如400(错误请求)、404(未找到) |
5xx状态码 | 表示服务器错误,如500(服务器内部错误)、503(服务不可用) |
URI | 统一资源标识符,用于标识和定位资源 |
HATEOAS | 超媒体作为应用状态引擎,提供资源相关的链接信息 |
Content-Type | HTTP头部字段,指定资源的媒体类型(如JSON、XML) |