[NOTE] RESTful架构
前言
是对RESTful架构的学习笔记
学习资料:
正文
概念
REST
Representational State Transfer
表现层状态转化(表征性状态转移)
EST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力,更好地使用现有Web标准中的一些准则和约束。虽然REST本身受Web技术的影响很深,但是理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。所以我们这里描述的REST也是通过HTTP实现的REST。
- 资源
就是网络上的一个实体,或者说是网络上的一个具体信息(由URL指向) - 表现层
我们把"资源"具体呈现出来的形式,叫做它的"表现层"(如JPG/PNG) - 状态转化
如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"
具体指HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE
综述
- 每一个URI代表一种资源
- 客户端和服务器之间,传递这种资源的某种表现层
- 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"
一些误区
- URL不应包含动词
如某个URI是/posts/show/1,其中show是动词,这个URI就设计错了
正确的写法应该是/posts/1,然后用GET方法表示show - URL不应包含版本号
就类似于URL不应暴露接口版本
应该使用同一URL,在HTTP请求头信息的Accept字段中进行版本区分
其他
所以关键应该是联系上四个HTTP方法的使用
GET、PUT、POST、DELETE
然后还有一些关于各操作是否幂等或是否安全的说法…
先这样吧,OFF