Html REST-内容类型选择

Html REST-内容类型选择,html,json,rest,Html,Json,Rest,我们正在三个系统之间进行集成(我们称它们为A,B和C)A和B我们可以控制的系统,C我们不能。 三个系统之间的逻辑是-A与B通信,B与C通信。 所有人都使用RESTWebServices。我们无法控制的,使用内容类型application/jsonB现在使用text/html,因为有较旧的集成(使用C)。使用A时,根本不进行任何集成 因此,我想知道是否最好从头开始重做B系统,并让它对每个系统使用相同的内容类型application/json,或者保持原样(好像没有太大区别) 与html相比,使用a

我们正在三个系统之间进行集成(我们称它们为
A
B
C
)<代码>A和
B
我们可以控制的系统,
C
我们不能。 三个系统之间的逻辑是-
A
B
通信,
B
C
通信。 所有人都使用RESTWebServices。我们无法控制的,使用内容类型
application/json
B
现在使用
text/html
,因为有较旧的集成(使用
C
)。使用
A
时,根本不进行任何集成

因此,我想知道是否最好从头开始重做
B
系统,并让它对每个系统使用相同的内容类型
application/json
,或者保持原样(好像没有太大区别)

html
相比,使用
application/json
还有什么优点/缺点吗

更新
抱歉,我忘了提到,如果业务数据有任何用处,它将仅用于传输业务数据。

TLDR-使用JSON

实际上,当涉及到web服务时,您应该满足客户的任何要求(以及您的支持)。客户机可以通过使用HTTP Accept头指定他们想要接收的数据类型,相应地序列化响应取决于您的web服务(或您正在使用的web服务框架)

当谈到使用HTML或JSON提供数据的区别时,它们是针对两种不同的用例的。HTML与“标记”(HTML中的M)一起发送,其中包括如何查看数据的说明,通常由浏览器查看。对于另一个不是浏览器并且只是在查找数据的客户机,解析此数据是一个额外的不必要步骤,如果没有第三方库或大量手动代码,通常不会自动支持此步骤

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


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

这就像询问是否应该使用索引卡或小说一样。HTML和JSON被设计用来表达非常不同的东西。它们不适合做相同的工作,而且一个本质上并不比另一个好。@Quentin所以请和蔼可亲地说出这些区别,因为现在我们的系统中相同的数据使用两种不同的类型,我认为这不好。