如何以REST方式定义资源上的转换?

时间:2014-09-17 10:09:34

标签: rest hateoas json-api

我正在设计一个REST api,遵循最佳实践,包括一种超媒体/仇恨形式。我正在使用jsonapi来设计指南,这似乎非常完整。

目前,我需要:

  1. 在响应中组合2个资源(资源A和相关资源B)。我是使用Compound Documents - structure中指定的jsonapi执行此操作的。或者通常也称为资源扩展
  2. 以专门的方式格式化1.的结果,以便可以由期望所述格式化的专门客户端轻松使用。
  3. 我的问题是 2 。如何以REST方式正确表示?似乎我可能需要一个单独的端点,但这不会是'RESTy',因为这意味着一个单独的资源,而它只是对同一资源的输出的转换。

    有关如何执行此操作的任何参考?

1 个答案:

答案 0 :(得分:1)

您可以使用标头或查询参数来处理此问题。

当客户端需要特定格式时,他们可以在请求中添加额外的标头,例如Format:Indented或类似http:\\myapp.com\resouces\myresource?format=indented

或者,如果服务器正在格式化并希望客户端知道响应是预先格式化的,则服务器可以添加Format响应头以通知客户端响应已格式化。