BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Google Base和微软Astoria协议比较

| 作者 Jonathan Allen 关注 546 他的粉丝 ,译者 霍泰稳 关注 1 他的粉丝 发布于 2007年7月27日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

Dare Obasanjo对通过HTTP访问数据库样式数据的两个新的协议进行了对比。这两个协议都基于REST,分别是Google BaseMicrosoft的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块等。我怀疑谁会去用这些复杂的属性,如果它们只有层次,而不是一个需要复杂过滤才能获取数据的普通命名空间的话。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT