restful

本文深入解析RESTful架构的核心概念,包括面向资源的设计原则、统一接口的规范与约束,以及如何设计符合RESTful的URL。探讨了资源标识、消息与资源自描述性和HATEOAS的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.什么是RESTful 面向资源

简单的说:RESTful是一种架构的规范与约束、原则,符合这种规范的架构就是RESTful架构。

 

先看REST是什么意思,英文Representational state transfer 表述性状态转移 其实就是对 资源 的表述性状态转移。

资源的地址 在web中就是URL (统一资源标识符)

资源是REST系统的核心概念。 所有的设计都是以资源为中心

 

结合项目怎么识别资源

1.商品加入购物车 购物车

2.提交订单 订单

3.创建用户 用户

 

围绕资源进行 添加,获取,修改,删除,以及对符合特定条件的资源进行列表操作 。针对资源设计接口

 

二.关于规范与约束有哪些?

RESTful 架构的核心规范与约束:统一接口

分为四个子约束:

1.每个资源都拥有一个资源标识,每个资源的资源标识可以用来唯一地标明该资源

2.消息的自描述性

3.资源的自描述性。

4.HATEOAS Hypermedia As The Engine Of Application State(超媒体作为应用状态引擎)

即客户只可以通过服务端所返回各结果中所包含的信息来得到下一步操作所需要的信息,如到底是向哪个URL发送请求等。也就是说,一个典型的REST服务不需要额外的文档标示通过哪些URL访问特定类型的资源,而是通过服务端返回的响应来标示到底能在该资源上执行什么样的操作

 

目的:实现客户端无需借助任何文档即能调用到所有的服务器资源

三、资源的URL设计

1.通过URL来表示资源

资源分为主资源与子资源

因为主资源是一类独立的资源 所以主资源应直接放在相对路径下:例如

若要表示主资源的实例:如果实例的ID=1,则这样表示: /goods/1

子资源:

一个实例的子资源可能是一个集合也可能是一个单一的子资源

子资源为图片集合:/goods/1/pictures

子资源为商品折扣的单子子资源:/goods/1/discount

2.单数 vs. 复数

获取用户1的信息,哪种方式更符合RESTful?

/api/users/1

/api/user/1

3.相对路径 vs. 请求参数

极光的RESTful API:

获取用户信息 GET /v1/users/{username} 参数放在路径中

VS

获取用户信息 GET /v1/users?username=xxxxx 拼接的方式

获取应用管理员列表 GET /v1/admins?start={start}&count={count} ?后拼接参数的方式:这种方式一般作为过滤资源

 请求路径        请求方法           作用

-/user/1        HTTP GET        得到id为1的user

-/user/1        HTTP DELETE     删除id为1的user

-/user/1,2,3        HTTP DELETE     删除id为1的user

-/user/       HTTP PUT        更新id为1的user

-/user /         HTTP POST       新增user

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值