REST / JSON / XML-RPC / SOAP
抱歉我又来问同样的问题,已经是第100000个人了。不过我觉得我的情况有点特别。
我们的应用是想在3G网络上用一个安卓手机客户端和一个轻量级的Python网络服务服务器。
手机会做大部分工作,比如上传照片、获取GPS信息等等。服务器只需要在每次上传后回复一个“好的”。
我想用最轻便的方法,这样对电池的消耗也最小。但我看了很多协议的介绍,感觉有点混乱,因为它们听起来都差不多。
这些协议都是同一层次的吗?或者说JSON可以用在RESTful服务中吗?所以,重点在于上传。进行REST操作时,所有输入都必须放在URI里吗?比如说 http://www.server.com/upload/0x81d058f82ac13。我在网上查XML-RPC和SOAP,发现它们听起来也挺相似的。
1 个回答
7
REST是一种规定了基本概念和语义的方式。至于数据传输和编码方式,就看你自己怎么选择了。最开始是基于XML的,但其实用JSON也完全可以。
XML-RPC和SOAP是不同的机制,但大体上是相似的想法:就是如何把面向对象的API映射到XML和HTTP之上。个人觉得它们的设计很糟糕。当我了解到REST的时候,真是松了一口气。在你的情况下,我相信有很多层会导致更多的CPU需求。
我建议你使用REST,并用JSON来编码;不过如果你的需求真的简单到只需要上传,那你可以直接用HTTP(即使不加任何特定的库,它也可能是符合REST设计的)。