RESTful笔记

什么是RESTful

概念:REST是Representational State Transfer 的缩写,直译就是表现层状态转化。 这里听起来可能有点奇怪,因为省略了重要的主语Resources 资源,资源在变现层的状态转化。
资源:就是网络上的一个实体,网络上的一个具体信息。可以是一段文本,一张图片,一首歌曲,一种服务。用一个uri指向它,URI成了每一个资源的地址或独一无二的识别符。

URI 表示一个资源
HTTP METHOD 表示对资源的操作
HTTP STATUS CODE 表示操作的结果

如果一个架构符合REST原则,就称它为RESTful架构。

状态转化
互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
总结一下什么是RESTful架构

  1. 每一个URI代表一种资源;
  2. 客户端和服务器之间,传递这种资源的某种表现层;
  3. 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

设计流程

  1. 确定一个API提供什么类型的资源
  2. 确定资源之间的依赖关系
  3. 基于类型和依赖关系确定资源的命名
  4. 确定资源的结构
  5. 为资源添加最少的方法

Resource Names
资源是一个实体对象,那么资源名就是这个资源的标识。

一个资源名应该由API Service,Collection ID 和 Resource ID名组成。

例1:存储服务有 buckets 的集合,其中每个桶包含一个 objects 集合。

在这里插入图片描述
例2:电子邮件服务用户的集合。sub-resource 每个用户都有一个设置,设置 sub-resource 有许多其他的子资源,包括 customFrom:

在这里插入图片描述
全名://gateway.com.cn/storage/buckets/1/materials/wood
相对名:buckets/1/materials/wood
HTTP URL:http://gateway.com.cn/storage/v1/buckets/1/materials/wood

Resource ID

  • Resource ID 标识着资源属于父资源中。
  • Resource ID 可能不止一个单词,也有可能是一个相对路径。
  • Resource ID 必须清楚地被记录,无论是客户端,服务器,或第三方。

Collection ID

  • Collection ID 必须是有效的程序标识符。

  • Collection ID 必须是驼峰形式的复数结构,如果没有复数形式,应使用单数。为什么用复数,应为资源往往不会只有一个,而是有很多个。

  • Collection ID 必须是清晰简洁的英文单词。

  • Collection ID 避免使用笼统的表示,例如objects、values、types。

Action 命名规范

基本规范

  • 使用”/“表示层级关系
  • url 不能以”/“结尾
  • url 中不能包含空格””
  • url 中不能以文件后缀结尾
  • url 中字母小写,单词间加下划线
  • 不要再url中添加CRUD

类别
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值