restful的介绍很多,同学们可以去网上找相应的概念描述。
我对restful的理解:
1、服务器端不再负责界面的生成,所有的界面显示均由调用者自己去处理。
2、服务器端提供标准的api接口,按约定格式(json,xml或其它)返回数据。
3、充分利用http协调,以简洁的url地址表达更丰富的含义。
从上面列出的来看,restful架构将更有利于服务器端和客户端各自己的演进,对于多客户端应用优势明显,但是,开发一个restful程序也不一定完全按照restful标准去做。比如:状态信息一定完全由客户端维护?get、post、put、delete一定按标准含义去做?其实未必。
下面通过一个用户登录及crud操作的实例,引导大家完成一个简单的restful程序。
先说框架的选择,现在有很多java开源restful框架供大家选择,比如restlet,地址:http://www.restlet.org/,这东西做得不错,但我更倾向于在现有的mvc框架上提供restful的实现,因为按照传统的表现层、业务层、持久层分层架架构来看,restful架构对业务层和持久层是没有影响的,任何一个系统都有这两块,因此,变化的部分还是表现层,只是传统的mvc框架是服务器端自己负责生成页面内容,而restful则是服务器端提供统一格式的数据,而不做界面相关工作,从这一点上看,完全可以利用传统的mvc框架返回数据,也就是说,消弱传统mvc框架的页面渲染生成能力,而仅仅用其向调用者发回数据即可。这么做还有一个好处,一个应用系统也许并不是所有功能都需要移动终端去操作,还有很多功能可以按照传统的mvc模式去做,这样的架构也更加的灵活。
struts2和spring mvc都对restful提供了支持,特别是spring mvc的支持非常完美,我们这个 demo将用spring mvc来实现。
我们要做的第一步工作,是对整个系统的rul进行规划设计,请看我们的设计:
当然了,提交方式可以根据情况更改,比如:要传中文数据到服务器,get方式可以换成post方式,再比如修改,提交数据很不方便,可以将put换成post,这些变化,会使你的服务器端程序变得更简单。
开发中会用到fiddler,以对请求响应进行跟踪。
本文转载于:http://yanyaner.com/blog/2012/12/28/restful1/
刘江华的博客!