我们正在三个系统之间进行集成(让我们称之为A
,B
和C
)。我们可以控制的A
和B
系统,C
我们不能。
三个系统之间的逻辑就是这个 - A
与B
进行通信,B
与C
进行通信。
全部使用REST Web服务。我们无法控制的,使用内容类型application/json
。 B
现在使用text/html
,因为有较旧的集成(使用C
)。使用A
时,根本没有完成集成。
所以我想知道从头开始重做B
系统是否更好,并使其为每个系统使用相同的内容类型application/json
或保持原样(就像没有多少差异)?
我应该使用application/json
而不是html
还有什么优点/缺点?
更新 对不起,我忘了提及,如果有任何用途,它将仅用于传输业务数据。
答案 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。