REST - 内容类型选择

时间:2015-02-11 14:25:45

标签: html json rest

我们正在三个系统之间进行集成(让我们称之为ABC)。我们可以控制的AB系统,C我们不能。 三个系统之间的逻辑就是这个 - AB进行通信,BC进行通信。  全部使用REST Web服务。我们无法控制的,使用内容类型application/jsonB现在使用text/html,因为有较旧的集成(使用C)。使用A时,根本没有完成集成。

所以我想知道从头开始重做B系统是否更好,并使其为每个系统使用相同的内容类型application/json或保持原样(就像没有多少差异)?

我应该使用application/json而不是html还有什么优点/缺点?

更新 对不起,我忘了提及,如果有任何用途,它将仅用于传输业务数据。

1 个答案:

答案 0 :(得分:2)

TLDR - 使用JSON

实际上,当涉及到Web服务时,您应该提供客户要求的任何内容(并且您支持)。客户端可以使用HTTP Accept标头指定他们希望接收的数据类型,并且可以根据您的Web服务(或您正在使用的Web服务框架)来相应地序列化响应。

当谈到使用HTML或JSON提供数据之间的差异时,它们意味着两种不同的用例。 HTML随着"标记"一起发送(HTML中的M),包括有关如何通过浏览器查看数据的说明。对于另一个不是浏览器并且只是在寻找数据的客户来说,解析这些数据是一个额外的不必要的步骤,如果没有第三方库或一堆手动代码,通常不会自动支持。

JSON(以及XML和其他格式,如CSV)仅用于传输数据及其可能的关系,反序列化通常由许多不同的客户端编程语言(包括.NET,JavaScript等)本地支持。因为它只是数据,所以客户不必尝试从任何额外的无关标记中提取数据。

此外,客户端Web应用程序在客户端接收JSON并创建HTML比接收HTML并在需要时仅解析数据更容易。此外,您还允许客户端创建特定于其应用程序的HTML,而不是尝试操纵Web服务发送给他们使用其特定应用程序的HTML。