一文详解REST风格

REST(Representational State Transfer,表现层状态转移)是一种被广泛采用的Web API架构风格,它并非协议或标准,而是一组设计原则,旨在通过HTTP协议天然特性构建简洁、可扩展、易于理解的API。

一、REST风格的核心概念

1.1 什么是REST?

REST由Roy Fielding在2000年的博士论文中提出,核心是**“以资源为中心”**,将一切数据(如用户、订单、商品)视为“资源”,通过HTTP方法对资源进行操作。

  • 资源(Resource):API操作的对象(如/users表示用户资源集合,/users/1表示ID为1的用户);
  • 表现层(Representation):资源的展示形式(如JSON、XML,现代API多采用JSON);
  • 状态转移(State Transfer):通过HTTP方法(GET/POST/PUT/DELETE)实现资源状态的改变,客户端无需了解服务器内部实现。

1.2 REST与HTTP的关系

REST并非独立于HTTP的技术,而是充分利用HTTP协议特性的设计风格:

  • 用HTTP方法(GET/POST/PUT/DELETE)表示操作类型;
  • 用HTTP状态码(200/201/404/500等)表示请求结果;
  • 用HTTP头(如Content-Type)表示数据格式;
  • 用URI标识资源(如/products)。

简言之:REST是“如何正确使用HTTP”的设计指南。

二、REST风格的核心原则

遵循以下原则是设计RESTful API的关键,也是区分“REST风格”与“普通API”的核心。

2.1 资源为中心,URI表示资源

  • URI应标识资源(名词),而非操作(动词);
  • 用复数表示资源集合(如/users),单数表示单个资源(如/users/1);
  • 避免在URI中包含版本号、操作动词(如/getUser/deleteOrder)。
错误URI 正确URI 说明
/getUser?id=1 /users/1 避免动词,用名词+ID表示资源
/deleteOrder/1 /orders/1 删除操作通过HTTP方法(DELETE)表示
/v1/users /users(版本放HTTP头) 避免URI包含版本号

2.2 用HTTP方法表示操作类型

HTTP方法本身具有语义,REST通过方法表示对资源的操作:

HTTP方法 操作类型 示例URI 说明
GET 查询资源 /users 查询用户列表(安全、幂等)
GET 查询资源 /users/1 查询ID为1的用户(安全、幂等)
POST 创建资源 /users 新增用户(非幂等,多次调用可能创建多个)
PUT 全量更新资源 /users/1 更新用户全部信息(幂等)
PATCH 部分更新资源 /users/1 更新用户部分信息(如仅修改姓名,幂等)
DELETE 删除资源 /users/1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值