spring 中的 MIME 类型和版本控制

mime type and versioning in spring

我正在尝试使用以下内容向我的 api 添加一个版本:

@RequestMapping (method = RequestMethod.GET, value = "/public/api/item", produces = "application/vnd.company.api.v1+hal+json")

我遇到了一个例外: org.springframework.web.HttpMediaTypeNotAcceptableException: 找不到可接受的表示形式

问题好像是mime类型不支持多于1个+号和类型。如果我将类型限制为仅 vnd.company.api.v1+json 那么它就可以工作。

任何人都知道 mime 类型是否仅限于 2 个以上字符,以及是否有人使用 hal+json 类型进行版本控制。谢谢

hal+json 本身不是扩展吗?换句话说,我不认为你的后缀应该是 +hal+json,它只是 +json 加上你唯一的供应商前缀(可以在某处包含 hal)。

使用 . 而不是像其他一些组织那样使用 + 怎么样?

application/vnd.company.api.v1.hal+json

http://www.iana.org/assignments/media-types/media-types.xhtml