RESTful 架构初识
介绍
REST(Representational State Transfer)表现层状态转移,是基于命名资源松耦合应用程序的一种架构风格(通常用来架构web应用服务),REST是一种思维方式,而非协议或标准。
解释说明
Representational State Transfer:这个其实少了主语Resource,加上主语就容易理解很多了。
Resource:资源,即数据(txt、图片等,网络的核心)
Representational:某种表现形式,比如用JSON,XML,JPEG等
State Transfer:状态变化。通过HTTP动词实现
Web上所有的内容(页面、图像、数据等)本质上都是资源。而REST正是基于命名资
源而非消息的,这就限制了底层技术的曝光,从而给应用程序设计中的松耦合提供了便利条件。
RESTful简单理解
RESTful说简单其实就是:URL定位资源,用HTTP动词(GET,POST,DELETE,PUT)描述操作
备注:可以那么说REST是构建于HTTP(协议简单)、JSON(高效简单存储数据格式)两种协议上的一种架构风格。
REST 的魅力在于任何东西都可以成为资源,且表示方法也可以不同。在前面的例
子中,资源为一个 HTML 文件,因此,其响应可能是 HTML 格式的。但是资源也
可以是一个 XML 文档、序列化的对象或者 JSON 表示。其实,这些都无关紧要。
重要的是资源被命名了,并且与它通信不会影响其状态。不影响状态是很重要的,
因为无状态的交互有利于可伸缩性。
REST它的核心价值是什么?
简洁就是终极复杂,简洁是重点。
REST是一种思维方式是设计基于命名资源而非消息的松耦合应用程序的一种风
格。通过借助已经验证了的成功的Web基础设施(http协议),REST使得这些应用程
序易于设计和实现。而且REST应用程序具有良好的伸缩性和扩展性。
一个URI可以映射到不止一个HTTP动词
http://localhost:8080/userManager/user/user_id //GET 对应的就是获取某个用户的信息
http://localhost:8080/userManager/user/user_id //POST 对应的就是更新某个用户的信息
restful java标准和实现框架
java ee6之后 javax.ws.rs包提供了restful web服务标准
实现参考框架
1、jersey(oracle官方推荐)
2、resteasy(jboss提供的实现)
3、spring mvc也算吧(个人不是很喜欢,感觉不够纯正)
备注:想要学好restful就要好好看看javax.ws.rs包下的一些标准接口定义
大多数都是基于http+json实现,目前已经很少使用xml作为数据传输格式
参考
1、http://www.ruanyifeng.com/blog/2011/09/restful
2、http://www.ibm.com/developerworks/cn/education/java/j-rest/j-rest.html