RESTful 服务能否根据请求标头返回同一资源的 JSON 和 XML?

2023-12-31

我有一个简单的 RESTful 方法,当前返回对象的 JSON 表示形式。

我的问题更多是从架构的角度来看的,而不是完全技术性的。

RESTful 服务是否应该设计为同时返回 JSON 和 XML?

据我所知,这是一种不好的做法,应该为此定义单独的资源。一种资源应返回 JSON 数据,另一种资源应返回 XML。

我的想法正确吗?


根据请求,同一资源可能会返回 XML 或 JSON,但不应同时返回两者。您将根据请求知道要返回哪一个,因此无需同时生成两者 - 只需生成要返回的那个即可。

您可以通过以下方式来决定返回哪个。按顺序求值,确定要返回的格式后停止:

  1. 如果资源中添加了扩展(GET /user/1234.json or GET /user/1234.xml),使用它作为请求的格式。
  2. 如果设置了 Accept 标头,请使用该标头的值作为请求的格式。
  3. 如果存在请求正文(如 POST 的情况),并且 Content-Type 标头指定 JSON 或 XML,请使用它。
  4. 如果以上都不适用,请使用默认格式(通常使用 JSON 作为默认格式,除非您的客户通常仍在使用 XML)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RESTful 服务能否根据请求标头返回同一资源的 JSON 和 XML? 的相关文章

随机推荐