通过线路发送OData有效负载的最有效方法是什么? “密集的JSON?”

时间:2012-03-09 15:20:45

标签: json rest odata asp.net-web-api atompub

我正在设计一个包含各种REST服务的分布式应用程序。最近我一直在讨论是否使用ASP.NET MVC 4 Web API或OData实现我的REST服务。 Web API似乎有一天会成为我需要的东西,但现在它只有一半被烘焙。具体来说,它只是部分实现了OData样式的URI查询,并且没有开箱即用的超媒体。

所以这迫使我再看看OData。我非常喜欢URI查询功能和用于延迟加载的结构超媒体;我想我会在我的应用程序中大量使用这些功能。但是,Atom Pub规范似乎效率极低。

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

是否有任何我希望使用Atom Pub over JSON的情况?

1 个答案:

答案 0 :(得分:1)

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

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

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