精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-19
1.REST1.1 缘起 N年前,一说到跨平台的服务方案,大牛们就想到"Socket Server",小兵们就一直退,退到会议室的墙角。 1.2 初见REST首先是一个词,然后代表了一种服务提供模式。嗯,圣贤说,任意服务协议,都可以拆成传输协议,服务模式,数据格式三维表达,那REST就是依赖http作为传输机制,request-reponse模式,数据是预先协商好的任意格式。 结果,任何语言的客户端,随便用一个http库访问某个URL,将请求信息写成XML或JSON或纯字符串,放在POST实体中。服务端也任意的实现一个servlet甚至jsp/asp/php,接收客户端发过来的请求,返回XML/JSON/字符串的结果就完了。 So Easy,心里是不是立刻就想到了实现的方式。Java里用Apache的HttpClient 发送一个POST请求。 HttpClient httpClient = new HttpClient(); EntityEnclosingMethod method = new PostMethod(url); method.setRequestBody(fooXml); method.setRequestHeader("Content-type","application/xml; charset=utf8"); httpClient.executeMethod(method); String body = method.getResponseBodyAsString();
另外一个XML/JSON的操作库,严重推荐codehaus的xstream ,很漂亮的在xml/json和java对象间转换。比其他重型的xml binding方案便捷得多,下面是xml与java对象互转的代码。 Xstream xs = new Xstream(); String xml = xs.toXML(foo); Foo foo = (Foo)xs.FromXML(xml);
.Net下面就更简单,http库和xml库都自带了。 1.3 主义罗喧说,REST是面向消息(资源)的简单交互逐步替代RPC。真正的REST有如下的主张:
1.4 代价当然,REST简单也有简单的代价,比如缺乏了事务、可靠性、WS-Address、UDDI等机制。不过这些机制在正统的WebService世界里使用的也不多。对于那些没有使用任何附加机制的纯WebService,都可以考虑用REST编写,或者像DIY事务 一样自己设计协议。 另外需要客户自解释Payload,或是依靠Server方提供的SDK,而不能从直接WSDL生成DTO,WADL 尚无定论。 最后,REST除了作为Service方案,还可以作为Web应用MVC方案,比如Cetia4(https://cetia4.dev.java.net/ )就叫板替代传统的MVC框架,不过我觉得又搞一堆框架后,简单就渐渐失去意义了,加上最近都不搞Web应用,花半天看完它的教程文档后,不再关注。 2.JSONJSON简介(dev2dev) 。如果有大数据量的传输,JSON(JavaScript Object Notation) ,是对XML尤其是SOAP中复杂XML的简化。如: {"product":{"name":"Banana","id":"123","price":"23.0"}}
每种语言都有N种JSON解释器 。XStream也用Jettison 做driver,支持Java对象与JSON的序列化,建立XStream对象时将参数改为Jettision就可以了,其他操作与XML一样,见JSON Tutorial XStream xstream = new XStream(new JettisonMappedXmlDriver()); 无独有偶,Apache CXF(XFire)也用Jettison支持Web Service使用JSON格式,详见它的JSON Support 。
参考资料: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-21
为什么不提 org.json 或者 json-lib, 也很好用啊 |
|
返回顶楼 | |
发表时间:2007-06-21
<p>我也正要问2楼问的那个问题 呵呵 </p>
<p>希望有人可以写一篇java下json组件/类库的总结评测文章.</p> <p> </p> |
|
返回顶楼 | |
发表时间:2007-06-23
json 的网站 http://json.org/
开始研究ajax中…… |
|
返回顶楼 | |
发表时间:2007-07-09
被json org 的 api 愚弄过,后来发现不是那么回事。没我想的美
|
|
返回顶楼 | |
发表时间:2007-08-07
json.org里面有几个很搞笑的方法:optXxx()...
getXxx()则抛异常。 json是个好东西,rest应该就是个url约定吧,有必要小题大做吗? |
|
返回顶楼 | |
发表时间:2007-08-09
通过http直接获得服务非常好,跨平台,跨项目。 <br />
当然也不是万能的,对于局域网内的机器便无法适用。 |
|
返回顶楼 | |
发表时间:2007-08-09
ajax+rest挺合适做产品的.
|
|
返回顶楼 | |
浏览 13316 次