1

一些媒体类型是其他媒体类型的扩展。此类媒体类型通常在其名称中使用 + 来表示这一点。例如,application/atom+xml 扩展了通用 xml,application/hal+json 扩展了通用 json。

我的问题是:如果客户端请求通用媒体类型并且服务器想要使用扩展媒体类型之一进行响应,应该怎么做?例如,如果请求具有标头Accept: application/json并且服务器想要使用 application/hal+json 进行响应,那么服务器应该...

  1. ...提供一个普通的简 JSON 与Content-type: application/json,即不包括_links_embeddeds?这就是客户所要求的,这就是它得到的。如果您想要 HAL,请索取。

  2. Content-type: application/json...使用?提供 HAL 表示 HAL,毕竟是 json,这就是客户要求的。客户很高兴,可以忽略它不理解的部分。

  3. Content-type: application/hal+json...使用?提供 HAL 表示 像 2. 一样,客户端得到它想要的并且可以忽略它不理解的位。但也有一条线索表明,客户可以从表示中获得更多收益。

我的偏好是 3。但是是否有规范、最佳实践或常用方法可以提供指导,这是最佳选择?

4

1 回答 1

1

服务器可以做这三个中的任何一个,或者406 Not Acceptable如果它不愿意用默认表示来响应,它可以响应。

见:https ://www.rfc-editor.org/rfc/rfc7231#section-6.5.6

于 2014-09-22T07:44:57.193 回答