标头值:application / vnd.api + json


101

有人可以解释以下两者之间的区别:

application/vnd.api+json

application/json

Answers:


94

媒体类型application/vnd.api+json是指JSON API。您可以在这里详细了解它。

简而言之,JSON API是一个自以为是的理由:

…有关客户端应如何请求获取或修改资源以及服务器应如何响应这些请求的规范。


30
如果@rmhartog的答案中包含有关供应商前缀(`vnd.`)的句子,那将是很好的。
Vasif

我之所以在这里,是因为我一直在寻找的解释vnd,由于@Vasif,我现在知道它是供应商前缀。原始版本的编辑非常棒。
Kamuela Franco

69

第一种是API特定的媒体类型。供应商前缀(vnd.)表示它是为此供应商定制的。的+json指示,它可以被解析为JSON,但媒体类型应当限定于JSON的顶部进一步语义。

第二个只是意味着内容是JSON。但是,这通常不是很有用,因为它没有定义JSON值的含义。

了解这一点的一个很好的起点是在Wikipedia上,但是有关更多详细信息,您可以始终单击该页面上相应RFC的链接。


33

如果不确定,请使用application/json-这是通用MIME类型,它仅要求您返回的数据为格式正确的JSON即可


application/vnd.api+jsonMIME类型是使用(容易混淆的命名)保留用于通信“JSON API”协议。

在本文中,“ JSON API” 并不表示任何基于HTTP和JSON的API。它也不是完全指定的API,而是一个用于构建API 的框架,该API允许客户端获取和修改相互关联的实体。例如,博客应用程序可以实现符合“ JSON API”规范的API,该API允许给定作者在单个HTTP请求中获取最后10篇文章,以及每篇文章的元数据和注释。

该规范特别定义:

  • 应以何种方式形成请求(即,哪些URL参数控制排序和分页以及输出中包含的数据);
  • 响应中JSON文档的特定结构,例如:

    文档必须至少包含以下顶级成员之一:

    • data:文档的“原始数据”
    • errors:错误对象数组
    • meta:包含非标准元信息的元对象。

    成员dataerrors不得在同一文档中共存。


8

多用途Internet邮件扩展(MIME)类型(或)媒体类型是一种标准化的方式来表示通过Internet传输文件的性质和格式。它在IETF RFC 6838中标准化。在互联网编号分配机构(IANA)负责保持所有正式的MIME类型的赛道的官方机构。

JSON API使用的媒体类型为application / vnd.api + json,并且已在IANA上正确注册。

API + JSON媒体类型用于提供JSON的不同API之间的互操作性。

它是根据“加厚JavaScript”客户端及其需求而考虑而创建的,但并非特定于他们。因此,以vnd(供应商)为前缀。

在JSON API上添加更多点:

  • JSON API是一个规范,它定义有关请求和响应方式的api规范。
  • 允许我们创建一个定义良好的结构(例如资源-关系及其链接等。​​)
  • 指定REST API对CRUD操作的反应方式。
  • 允许客户端缓存响应。

-1

如果您需要设置以下标头 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);

希望能帮助到你!!


2
这根本与问题无关。
基督教
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.