1

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

因此,这迫使我重新审视 OData。我真的很喜欢延迟加载的 URI 查询功能和结构化超媒体;我想我会在我的应用程序中大量使用这些功能。但是,Atom Pub 规范似乎非常低效。

我最近阅读了一篇关于 OData 的有效格式的帖子,其中提到了“密集 JSON”,但这种事情似乎并不存在。这是真的?即使没有密集 JSON 这样的东西,常规 JSON 仍然比 Atom Pub 更有效,对吗?

在任何情况下我都想在 JSON 上使用 Atom Pub?

4

1 回答 1

1

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

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

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

于 2012-03-09T18:34:41.330 回答