** Springboot 实现 Restful 服务,基于 HTTP / JSON 传输 **
restful API
定义
- RESTful(Representational State Transfer)架构风格,是一个Web自身的架构风格,底层主要基于HTTP协议(ps:提出者就是HTTP协议的作者),是分布式应用架构的伟大实践理论。
- RESTful架构是无状态的,表现为请求-响应的形式,有别于基于Bower(浏览器)的SessionId不同。
详解
资源
- 资源是指服务器,将服务器看作是由很多离散的资源组成
- 资源是一个抽象的概念,可以代表服务器上的一个文件,一张表等等等
- 一个资源可以由1或多个URL表示,URL既是资源的名称,也是资源的地址
资源的表述
- 是一段对资源在某个特定时刻的状态的描述,可以在客户端-服务器端交换
- 形式:HTML,XML,JSon,文本,音频等等
状态的转移
- 在客户端和服务器端之间转移(transfer)代表资源状态的表述。通过转移和操作资源的表述,来间接实现操作资源的目的
统一接口
- REST要求必须通过统一的接口对资源进行各种操作
- 对于资源执行的操作,其操作语义必须由HTTP消息体之前的部分完全表达,为了提高交互的可见性,以便于通信链的中间组件实现缓存、安全审计等等功能。
- 以HTTP/1.1协议为例
- 7个HTTP方法:get/post/put/delete/patch/head/options
- HTTP头信息
- HTTP响应状态代码
- 一套标准的内容协商机制
- 一套标准的缓存机制
- 一套标准的客户端身份认证机制
超文本驱动
- 又名“将超媒体作为应用状态的引擎”(Hypermedia As The Engine Of Application State
Rest API
权限控制
Rest的权限控制是比较重要的,因为它是无状态的,那么就需要对每次请求进行认证和授权
认证
身份认证,即登录验证用户是否拥有相应的身份。简单的说就是一个Web页面点击登录后,服务端进行用户密码的校验。
权限验证(授权)
验证该身份具体拥有某种权限。即针对于某种资源的CRUD,不同用户的操作权限是不同的。