REST - 内容类型选择
REST - content type choice
我们正在三个系统之间进行集成(我们称它们为 A
、B
和 C
)。 A
和 B
系统我们可以控制,C
我们不能。
三个系统之间的逻辑是这样的——A
与 B
通信,B
与 C
通信。
全部使用 REST 网络服务。我们无法控制的,使用内容类型application/json
。 B
现在使用 text/html
,因为以前的集成(使用 C
)使用了它。使用 A
根本没有完成任何集成。
所以我想知道是否最好从头开始重做 B
系统并使其对每个系统使用相同的内容类型 application/json
还是保持原样(就像没有太多内容一样)有区别)?
还有什么 advantages/disadvantages 我应该知道使用 application/json
而不是 html
吗?
更新
不好意思,忘了说了,如果有什么用的话,它只会用来传输业务数据。
TLDR - 使用JSON
实际上,当涉及到 Web 服务时,您应该提供客户要求(并且您支持)的任何内容。客户端可以使用 HTTP Accept header 指定他们想要接收的数据类型,这取决于您的 Web 服务(或您正在使用的 Web 服务框架)相应地序列化响应。
谈到使用 HTML 或 JSON 提供数据的区别时,它们适用于两种不同的用例。 HTML 与 "markup"(HTML 中的 M)一起发送,其中包含有关如何查看数据的说明,通常是通过浏览器查看。对于另一个不是浏览器并且只是在寻找数据的客户端,解析这些数据是一个额外的不必要步骤,如果没有第 3 方库或一堆手动代码,通常不会自动支持它。
JSON(以及 XML 和 CSV 等其他格式)仅用于传输数据及其可能的关系,反序列化通常由许多不同的客户端编程语言原生支持包括 .NET、JavaScript 等。因为它只是数据,所以客户不必尝试从任何额外的无关标记中提取数据。
此外,客户端 Web 应用程序在客户端接收 JSON 并创建 HTML 比接收 HTML 并仅解析数据要容易得多如果需要的话。另外,您允许客户端创建特定于他们的应用程序的 HTML,而不是试图操纵 Web 服务发送给他们的 HTML 以使用他们的特定应用程序。
我们正在三个系统之间进行集成(我们称它们为 A
、B
和 C
)。 A
和 B
系统我们可以控制,C
我们不能。
三个系统之间的逻辑是这样的——A
与 B
通信,B
与 C
通信。
全部使用 REST 网络服务。我们无法控制的,使用内容类型application/json
。 B
现在使用 text/html
,因为以前的集成(使用 C
)使用了它。使用 A
根本没有完成任何集成。
所以我想知道是否最好从头开始重做 B
系统并使其对每个系统使用相同的内容类型 application/json
还是保持原样(就像没有太多内容一样)有区别)?
还有什么 advantages/disadvantages 我应该知道使用 application/json
而不是 html
吗?
更新 不好意思,忘了说了,如果有什么用的话,它只会用来传输业务数据。
TLDR - 使用JSON
实际上,当涉及到 Web 服务时,您应该提供客户要求(并且您支持)的任何内容。客户端可以使用 HTTP Accept header 指定他们想要接收的数据类型,这取决于您的 Web 服务(或您正在使用的 Web 服务框架)相应地序列化响应。
谈到使用 HTML 或 JSON 提供数据的区别时,它们适用于两种不同的用例。 HTML 与 "markup"(HTML 中的 M)一起发送,其中包含有关如何查看数据的说明,通常是通过浏览器查看。对于另一个不是浏览器并且只是在寻找数据的客户端,解析这些数据是一个额外的不必要步骤,如果没有第 3 方库或一堆手动代码,通常不会自动支持它。
JSON(以及 XML 和 CSV 等其他格式)仅用于传输数据及其可能的关系,反序列化通常由许多不同的客户端编程语言原生支持包括 .NET、JavaScript 等。因为它只是数据,所以客户不必尝试从任何额外的无关标记中提取数据。
此外,客户端 Web 应用程序在客户端接收 JSON 并创建 HTML 比接收 HTML 并仅解析数据要容易得多如果需要的话。另外,您允许客户端创建特定于他们的应用程序的 HTML,而不是试图操纵 Web 服务发送给他们的 HTML 以使用他们的特定应用程序。