在创建自己的自定义媒体类型格式(例如 application/vnd.myapp+xml)时,客户端在发送正文内容时是否应该在自定义媒体类型中这样做?
例如,您将订单的表示放入 uri。内容应该是 application/vnd.myapp+xml,还是只是 xml,因为客户端不会包含链接等超媒体控件?
如果用户接受它(它应该),服务器将始终使用自定义媒体类型进行响应,但是客户端是否必须在其请求正文中使用它?
在创建自己的自定义媒体类型格式(例如 application/vnd.myapp+xml)时,客户端在发送正文内容时是否应该在自定义媒体类型中这样做?
例如,您将订单的表示放入 uri。内容应该是 application/vnd.myapp+xml,还是只是 xml,因为客户端不会包含链接等超媒体控件?
如果用户接受它(它应该),服务器将始终使用自定义媒体类型进行响应,但是客户端是否必须在其请求正文中使用它?
客户端不必使用服务器在 GET 响应中发回的相同媒体类型向服务器发送数据(例如,通过 PUT 或 POST)。由服务决定它可以接收哪些媒体类型以及它将返回哪些类型。当然,它可以实现为在同一资源的两个方向上支持多种媒体类型。
在创建自己的自定义媒体类型格式(例如 application/vnd.myapp+xml)时,客户端在发送正文内容时是否应该在自定义媒体类型中这样做?
不,以 HTML 为例。HTML 是不同的媒体类型,尽管数据可以以 text/plain、application/x-www-form-urlencoded 或 multipart/form-data 的形式提交。所有这些支持的类型都由 HTML 规范本身定义,并且可以在表单定义中提供。所以这取决于你如何用这个控制因素来协调客户端(即 HTML.FORM 中的 enctype)
例如,有两种 JSON 格式具有写入语义:
集合+JSON:http ://amundsen.com/media-types/collection/format/
其中明确定义了数据提交格式,是一个application/vnd.collection+json
Collection.next+JSON:http ://code.ge/media-types/collection-next-json/
支持同上,另外还支持“enctype”属性,服务实现者可以为数据提交指定所需的媒体类型。
如果用户接受它(它应该),服务器将始终使用自定义媒体类型进行响应,但是客户端是否必须在其请求正文中使用它?
请参阅上面的答案。