Dare Obasanjo对通过HTTP访问数据库样式数据的两个新的协议进行了对比。这两个协议都基于REST,分别是Google Base和Microsoft的Astoria。
两个协议之间的基本概念都是一样的。在SQL里面使用URL指定查询。关系和过滤器必须被编码成URL的一部分,所有的查询都是GET。
Dare指出的第一个不同之处是,Astoria使用层级格式表示关系。比如,要指定一个客户键值为5的订单列表,你需要使用像“/Customers[5]/Orders”这样的字符串。而Google Base则使用了一种普通的模式,在指定关系的时候必须使用类别和属性。
两者都支持过滤和排序,但是Google Base有更为丰富的语法和对跨所有类的全文查询支持。但是Google Base多少有些自作聪明,它还提供了对内联If/Else结构的支持。
Astoria有一个非常棒的称之为Expand的属性。用这个属性用户可以同时指定请求数据的子节点,从而免除了需要执行1+N次查询以获得数据行和相关子行的集合。这些数据在合适的节点下以内联XML的形式返回。
在Google Base里面同样也有一些Astoria所不具备的特性。比如用户可以进行拼写检查,和Google Search的工作方式类似。使用Crowd属性还可以过滤重复的信息。在这个文章中,Dare做了一个请求,“返回了所有储存在Google Base里面的餐馆,但每个菜的类型只显示两条记录”。
Dare Obasanjo总结说:
在比较两个方法的过程中,有很多喜欢和不喜欢的特性。我喜欢Astoria里的Expand属性,因为可以从多个层级路径中提取XML结果。但是如果要获得更好的过滤结果,它还缺少一些必要的操作和函数。
对于Google Base的数据API,我喜欢Crowd属性和在属性集里进行测试的一个完整的函数库。还有一些操作,比如在某位置附近查找结果等,尽管对于大多数RESTful协议并不是必须的。也就是说,我真的认为有些属性太“超前”了,比如在URI里面增加if...else块等。我怀疑谁会去用这些复杂的属性,如果它们只有层次,而不是一个需要复杂过滤才能获取数据的普通命名空间的话。
声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!
时间:2007-08-07 04:10:36,点击:65824
【声明】:以上文章或资料除注明为Office自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,本站确认后将立即撤下。谢谢您的支持与理解!
相关评论
我要评论
评论内容
相关文章
推荐文章