Api 静止介质型增殖
我看了一看,它试图解决REST媒体类型爆炸的问题。其中一个建议是使用一种媒体类型来描述任何内容的集合。例如,我们可以有一个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
应用程序/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。通过这种方式,您可以访问文档,这将告诉您所有需要了解的资源