有人可以解释之间的区别:
application/vnd.api+json
和
application/json
答案 0 :(得分:66)
媒体类型application/vnd.api+json
是指JSON API。你可以阅读它in great detail here。
简而言之,JSON API是一个自以为是的理由:
...客户端应如何请求资源的规范 获取或修改,以及服务器应如何响应 请求。
答案 1 :(得分:48)
第一种是API特定的媒体类型。供应商前缀(vnd.
)表示该供应商是自定义的。 +json
表示它可以解析为JSON,但媒体类型应该在JSON之上定义更多语义。
第二个意味着内容是JSON。但是,这通常不是很有用,因为它没有定义JSON值的含义。
关于此问题的良好起点将在Wikipedia上,但有关详细信息,您可以随时按照该页面上相应RFC的链接进行操作。
答案 2 :(得分:26)
如果您不确定,请使用application/json
- 它是通用MIME类型,只需要您返回的数据为well-formed JSON。
application/vnd.api+json
MIME类型保留用于使用(容易命名的)"JSON API"协议进行通信。
" JSON API"在此上下文中不表示基于HTTP和JSON的任何 API。它也不是完全指定的API - 而是框架,用于构建允许客户端获取和修改相互关联的实体的API。例如,博客应用程序可以实现符合" JSON API"规范,允许在一个HTTP请求中获取给定作者的最后10篇文章,每篇文章的元数据和注释。
规范特别定义:
文档必须至少包含以下顶级成员之一:
data
:文档的“主要数据”errors
:错误对象数组meta
:包含非标准元信息的元对象。成员
data
和errors
不得共存于同一文档中。
答案 3 :(得分:4)
多用途Internet邮件扩展(MIME)类型(或)媒体类型是一种标准化方式,用于指示通过Internet传输的文档的性质和格式。它在IETF RFC 6838中标准化。 互联网号码分配机构(IANA)是负责跟踪所有官方MIME类型的官方机构。
JSON API使用的媒体类型为application/vnd.api+json,并已在IANA正确注册。
API + JSON媒体类型用于为JSON提供服务的不同API之间的互操作性。
它是在考虑“厚JavaScript”客户端及其需求的情况下创建的,但并非特定于它们。所以,以vnd
(供应商)为前缀。
在JSON API上添加更多点:
答案 4 :(得分:0)
如果您需要设置以下标题 application / vnd.hmrc.1.0 + json
那么您应该选择
Accept: application/vnd.hmrc.1.0+json
使用CUrl,您可以运行脚本
$url="https://test-api.service.hmrc.gov.uk/hello/world";
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => array('Accept: application/vnd.hmrc.1.0+json')
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
希望有帮助!