【问题标题】:Media Type versioning in Accept header for ReSTReST 的 Accept 标头中的媒体类型版本控制
【发布时间】:2013-10-09 09:52:09
【问题描述】:

我为我的 ReST 服务支持的媒体类型 (xml/json) 添加了版本控制。传入请求的 Accept 标头应具有具有有效版本的媒体类型,以便以指定格式获得正确的响应。问题是,如果请求在接受标头中包含 有效的数据格式,但 无效的版本(或未指定版本),我必须在该特定数据中给出错误响应格式。

例如,让有效的媒体类型为 application/xml+v2application/json+v2。如果请求标头仅包含 application/xmlapplication/xml+v1 我必须在 xml 中给出错误响应并且标头包含 application/json+v1 我必须在 json 中给出错误响应。

【问题讨论】:

    标签: rest spring-mvc content-type http-accept-header


    【解决方案1】:

    如果媒体类型错误(不受支持),您是否必须提供自定义错误消息?使用正确的 HTTP 错误代码:415 Unsupported Media Type 并将响应正文留空还不够吗?

    如果媒体类型不包含版本,我将假定客户端请求最新的可用版本。

    【讨论】:

    • 我必须提供自定义错误响应。目前,我在 rest-servlet.xml 中有一个 bean 条目,对应于具有合适转换器的每种支持的类型。这可以为每个有效的版本化媒体类型给出。对于所有其他人,我在其中一个转换器中包含了一个通配符条目。所以无论是 application/xml+v2 还是 application/json+v2 得到的响应都会根据转换器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2011-06-12
    • 2013-12-09
    相关资源
    最近更新 更多