REST是一种跨平台、跨语言的架构风格,RESTful(REST式) Web服务是REST在Web领域的实现;JAX-RS标准是Java领域对RESTful Web服务的标准,Jersey是JAX-RS标准的实现。
什么是 REST?
REST 代表表述性状态转移(Representational State Transfer)。
REST服务特点
- 客户端-服务器的(Client-server)
- 无状态(Stateless)
- 可缓存的(Cacheable )
- 统一接口(Uniform interface)
- 分层(Layered)
一种架构风格
对象被视为一种资源,通常使用名词命名。
表述性状态是指资源数据在某个 瞬时的状态快照。
资源可以有多种表述如XML, JSON。
REST的资源时可寻址的,通过HTTP1.1协议定义的通用动词方法(GET,PUT,DELETE,POST),使用URI协议来唯一标识某个资源公布出来的接口。
HTTP协议和URI用于统一的接口和定位资源,文本,二进制流,XML和JSON等格式用来作为资源的表述。
基本实现形式:HTTP+URI+XML
统一接口
REST使用HTTP协议的通用方法作为统一的接口。
GET,PUT,DELETE,POST,WebDAV的扩展方法。
资源定位
REST使用URI实现资源定位。即对外提供REST式的Web服务的接口就是公布一系列的URI及其参数。
资源地址的设计是统一严谨的,资源名称应该是准确描述该资源的名词。
常用的资源地址设计示例:
添加和创建POST/PUT
/books
/books/{id}
删除delete
/books/{id}
修改/更新PUT
/books/{id}
查询全部GET
/books
主键查询GET
/books/{id}
/books?id=123456
分页作用域查询GET
/books?start=0&size=10
/books/01,2016-12,2017
/books/restful;program=java;type=web
/books?limit=100&sort=bookname
传输格式
REST接口通常以XML和JSON作为主要的传输格式。