【问题标题】:REST mixing JSON and XML?REST 混合 JSON 和 XML?
【发布时间】:2015-07-16 10:28:21
【问题描述】:

我正在开发一个小型 Web 服务。到目前为止,我一直在使用 JSON 进行响应。但我现在遇到的问题是我的 Web 服务与之对话的服务器会使用如下所示的 XML 进行响应:

<obj somedata="h1" somedata2="h5" xmldata="<xm debug="yes"/></xm>"/>

xml 数据属性包含 XML。我可以只运行 json_encode() (PHP)。但是 json_encode 似乎不想对 XML 数据属性进行编码。

如果我的 Web 服务在这种情况下使用 xml 响应而在其他情况下使用 JSON 响应,这是不好的做法吗?当然,我会将Content-Type 设置为application/xml,这也将记录在服务文档中。

但这很糟糕吗?我是否应该仅仅因为我在其他 API 函数中使用 JSON 响应而尽我所能将其转换为 JSON?

【问题讨论】:

  • 我想是不一致和烦人的
  • 是的,这是我最初的想法。特别是因为 API 用户从未要求 XML。

标签: php xml json rest


【解决方案1】:

在这种情况下,如果我的 Web 服务以 xml 响应,这是不好的做法吗? 其他情况下还有 JSON?

是的,在某些情况下返回 JSON 而在其他情况下返回 XML 是很糟糕的做法。但你已经知道了。

更糟糕的是,你提到的“XML”,

<obj somedata="h1" somedata2="h5" xmldata="<xm debug="yes"/></xm>"/>

根本不是 XML,因为它不是 well-formed:属性值不能包含原始 XML;你的没有转义:

  • 双引号字符 (")
  • 少于字符 (&lt;)。

建议:有一个 JSON 接口,或一个 XML 接口,或者最好两者分开

如果你不能同时拥有两者,请使用 JSON,除非:

  • 您的数据以文档为中心。
  • 有一个行业标准的 XML 架构来管理您的数据。
  • 您已经知道您的开发人员受众更喜欢 XML。

【讨论】:

    猜你喜欢
    • 2015-03-02
    • 2017-06-20
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    相关资源
    最近更新 更多