什么是REST?
REST -> Representational State Transfer 中文译为: 具象的/表述性状态转移
REST 是一种跨平台 跨语言 的架构风格
JAX-RS 标准 是在java语言中对REST风格的Web服务所制定的实现标准
REST的特点:
REST创始人Roy Thomas Fielding 博士在其论文中提出了REST的6个特点如下:
- 客户端 - 服务器的
- 无状态的
- 可缓存的
- 统一接口
- 分层系统
- 按需编码
REST它不是一种新的技术, 就是一种程序架构的风格, 就像编码中的驼峰命名法 ,就像java类名大写, 如果大家都按照这种风格就会提升开发效率,编码看起来更整洁一样 .rest风格也会让程序在架构层面显得更加整齐划一,易于管理和扩展.
与REST对应的则是RPC这样的架构风格.
什么是RPC风格
RPC : Remote Procedure Call Protocol 译为 : 远程过程调用协议风格
RPC的请求都是HTTP 协议的POST 方法.
RPC 风格的开发主要是 客户端-服务端 之间的方法调用, 而不关注基于哪个网络层的哪种协议 .
即RPC是面向过程的 , 也就是说RPC风格的资源单元其实就是一个个的方法, 而这个方法可能会有多重情况, 例如根据条件的不同会返回多种的资源的情况.
这也就是为什么RPC的http协议只需要post方法就可以, 因为他的本质就是我只需要把参数给你,然后让你这个方法执行就可以了. 至于是增删改查都已经写在参数里了.
RPC相比于REST风格:
REST风格是面向对象资源的架构, 他的出发点单元就是一个个对象, 利用http协议中的不同方法, get , put ,post ,delete 等对对象资源状态做不同的操作. 而其接口参数通常都是关于 当前操作的资源/资源状态的内容. 而其特点之一就是"要干什么?"的方法存在于http协议的方法中.
REST请求的
总结REST的关键点就是: 面向资源
RPC的关键点就是 : 面向方法
相比于RPC风格,REST风格的web服务形式更简单, 设计更轻量,
Jersey项目
首先讲一下JAX-RS标准: JAX-RS是java语言中REST式的Web服务的标准规范, 是使用java完成REST服务的基本约定.
Jersey是JAX-RX标准的参考实现, 是Java语言中最标准的REST服务开发框架.
Jersey的模块
Jersey框架是由核心模块,容器模块,连接器模块,Media模块,扩展模块,测试框架模块, 安全模块.一级GlassfiSH Bundle模块等8个大模块组成.