2012-03-09 64 views
1

我正在设计一个分布式应用程序,它将包含各种REST服务。最近我一直在回顾是否使用ASP.NET MVC 4 Web API或OData来实现我的REST服务。 Web API似乎有一天会成为我所需要的,但现在它只有一半。具体来说,它只是部分实现了OData风格的URI查询,并且不会立即执行超媒体。通过电线发送OData有效载荷的最有效方式是什么? “密集的JSON?”

因此,这迫使我再次对OData进行长期严格审视。我非常喜欢URI查询能力和结构超媒体的延迟加载;我想我会在我的应用程序中使用这些功能。但是,Atom Pub规范似乎非常低效。

我最近读了post about an efficient format for OData,其中提到“密JSON”,但这样的事情似乎并不存在。这是真的?即使没有密集的JSON这样的东西,普通的JSON仍然比Atom Pub效率更高,对吗?

是否有任何情况下我想通过JSON使用Atom Pub?

回答

1

ATOM和JSON在OData的语义层次上应该没什么区别。另外大多数OData服务器(肯定是WCF数据服务)都支持这两种服务器,所以它是客户端选择使用的一种。正如Pablo提到的博客文章所述,要获得最佳的有效负载大小,您应该启用HTTP压缩。它对ATOM和JSON都很好用。

阅读JSON的速度往往更快(XML解析有点贵),但这就是如果你关心客户端的CPU消耗。如果我没有记错,上次我看到这些数字时,ATOM和JSON的压缩有效载荷大小没有什么不同。

ATOM PUB通常更容易在具有可用的良好XML或ATOM库而不是JSON的客户端中使用。反之亦然。但除此之外,不应该有太大的区别。

相关问题