RESTFUL_前言
本来第一篇技术博客想从JAVA设计模式写起,公司的一个小的事情让我考虑到了RESTFUL。
公司高层突然想到了REST。没错,就是那个被大多数人简单认为是HTTP传输方式的东西。在如今各种封装框架层出不穷的时代,被遗忘已久,只有应用出错,外面的华丽的漆木剥落,才漏出朴素一角的WEB协议。公司提出这个想法过去一天,无果,公司发过来一个范例,我一看是CXF暴露REST服务。我有点哭笑不得,看来CXF也要拉点关系了。
REST的前世今生不用再说了,大家耳熟能祥。前言中只对其中一些概念做一个通俗的解释。
关于WEB服务:在很多人印象里,只要提起WEB服务,第一反应就webservice,SOAP,这是SOAP非常成功的地方。当ROY博士实在看不下去了,忍不了了,就说话了,说SOAP还不是搭HTTP顺风车,它能做的事情,HTTP一样能做,甚至更简单。然后提出一套理论和方法。
关于SOAP:SOAP是目前最流行的服务传输协议,对于它的应用,我会在SOA领域里做详细讲解。
WADL:WEB应用描述语言,是一套用于描述REST式服务的XML词汇,类似于WSDL,它的出现也是备受争议,但是对于国内普通用户而言,从实用的角度的出发,从多年贴近WSDL的实用习惯出发,各种不用REST框架应该提供更丰富的API。
WEB服务架构:目前业界流程三种WEB服务架构:基于HTTP的SOAPRPC,基于HTTP的XMLRPC,基于HTTP的REST。而我们很多场合所见的REST架构都是混合REST架构,没有对错,都是特定环境下的产物。
REST的四大特性说明:无状态性,简单的说就是每个请求孤立,我跟你借钱,你不知道上次我借多少,借没借,如果我不告诉你的话;Representations:表示,就是我们请求返回的视图,JSON,XML,ATOM,SVG等;表示的选择,服务器选择返回的客户端;链接与连通性,服务器通过超媒体(hypermedia)告诉客户端当前装填哪些后续状态可以进入,比如http://www.google.com/searche?q=jellyfish,分页等等。