首页 文章

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

提问于
浏览
1

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

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

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

有什么情况我想使用Atom Pub而不是JSON吗?

1 回答

  • 1

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

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

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

相关问题