Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 静止介质型增殖_Api_Rest_Content Type_Api Design_Media Type - Fatal编程技术网

Api 静止介质型增殖

Api 静止介质型增殖,api,rest,content-type,api-design,media-type,Api,Rest,Content Type,Api Design,Media Type,我看了一看,它试图解决REST媒体类型爆炸的问题。其中一个建议是使用一种媒体类型来描述任何内容的集合。例如,我们可以有一个应用程序/vnd.collection+json,它是一个具有定义良好语义的集合,可以保存对其他资源的引用列表: { "size": "3" "elements": [ { "href" : "http://my.api.com/resource/1" }, { "href" : "http://my.api.com/res

我看了一看,它试图解决REST媒体类型爆炸的问题。其中一个建议是使用一种媒体类型来描述任何内容的集合。例如,我们可以有一个
应用程序/vnd.collection+json
,它是一个具有定义良好语义的集合,可以保存对其他资源的引用列表:

{
    "size": "3"
    "elements": [
         { "href" : "http://my.api.com/resource/1" },
         { "href" : "http://my.api.com/resource/2" },
         { "href" : "http://my.api.com/resource/3" }
     ]
}
我知道减少聊天的一个选择是包含资源的嵌入式表示。列表的“通用”媒体类型如何实现这一点?列表的语义是否会根据其中的嵌入资源而改变?如果嵌入式资源具有不同的处理规则(理想情况下由媒体类型传递),则这一点尤其重要。在这种情况下,允许带内信息来描述嵌入式资源的媒体类型可以吗?例如,我们可以为链接和嵌入式资源提供
application/vnd.collection+json
,这样做:

{
    "size": "3"
    "element-content-type": "application/vnd.link+json" 
    "elements": [
         { "href" : "http://my.api.com/resource/1" },
         { "href" : "http://my.api.com/resource/2" },
         { "href" : "http://my.api.com/resource/3" }
     ]
}
如果它包含嵌入式资源:

{
    "size": "3"
    "element-content-type": "application/vnd.resource+json" 
    "elements": [
         { 
             "id": "1"
             "name": "Cool Resource" 
         },
         { 
             "id": "2"
             "name": "Awesome Resource" 
         },
         { 
             "id": "3"
             "name": "Super Awesome Resource" 
         }
     ]
}

假设
application/vnd.link+json
application/vnd.resource+json
也已经被记录在案。

我对这一点考虑得更多了,我认为这样包含内容类型实际上是可以的。原因是,我们已经这样做了。在HTML中,
script
标记有一个
type
属性,该属性可以是
application/javascript
application/vbscript
(例如)。为浏览器提供有关如何处理该标记内容的提示。类似地,我认为上面示例中的内容类型达到了相同的目的:它告诉客户机如何处理集合中的元素

我想进一步更新这个答案。另一种方法是使用rel。至少,哈尔是这样做的。您可以创建一个带有curie的名称空间rel,以便最终将rel解析为指向该资源文档的URL。通过这种方式,您可以访问文档,这将告诉您所有需要了解的资源