标题值:application / vnd.api + json

时间:2015-01-20 21:32:45

标签: json api rest

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

application/vnd.api+json

application/json

5 个答案:

答案 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篇文章,每篇文章的元数据和注释。

规范特别定义:

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

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

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

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

答案 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上添加更多点:

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

答案 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);

希望有帮助!