java - HAL+JSON 的正确媒体类型是什么?

标签 java spring rest http media-type

我正在使用 Spring 创建一个 RESTful 服务,我对媒体类型的语法很好奇。

据我了解,HAL+JSON 的通用媒体类型是application/hal+json。此外,根据我的理解,支持 HAL+JSON 的特定于供应商的自定义媒体类型类似于 application/vnd.api.entity.hal+json。不过,我也看到了application/vnd.api.entity+hal+json。哪一个是正确的?

此外,HAL+JSON 的正确通配符类型是什么?是 application/*.hal+json 还是 application/*+hal+json。链接到任何相关的 RFC 将不胜感激。谢谢!

最佳答案

application/vnd.api.entity+json

application/vnd.api.entity.hal+json 只有在您计划在不支持 HAL 的情况下提供数据时才有意义。无论如何,客户端必须知道内容的结构,HAL 是其中的一部分。

application/vnd.api.entity+hal+json 是错误的。 standard声明只应使用已注册的后缀。它还将它们称为“结构化语法后缀”。所以很明显,它是关于如何读取数据而不是数据的含义。只允许一个后缀,再多就没有意义了。

将其视为应用程序/语义+语法,或应用程序/其中的内容+如何阅读

关于java - HAL+JSON 的正确媒体类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26892480/

相关文章:

java - load-time-weaver (aspectj-weaver) 在 apache tomcat 7.0.55 中不工作

java - 在不使用脚本引擎的情况下评估 kotlin 中的字符串表达式

java - spring-data 在子对象上分离实体

spring - 如何记录生成文件 (pdf) 以便在 Swagger 上下载的 API?

java - 关于 REST PUT 动词和其他非基于 CRUD 的操作的一些说明

java - 当尝试从数据适配器检索 bean 时,为什么会出现错误 (ClassCastException)?

java - 你如何在 Java 中设计一个好的 permgen 空间字符串?

java - Spring - 获取拦截器/过滤器中给定请求的方法

java - JSTL 迭代列表

java - Spring Rest Controller,重写方法参数上的路径变量