我是内容丰富的api新手。当我输入用于检索0级标签条目(内容类型)的URL时,我创建了链接标签。我正在获取子元素id
fields": {
"level0Tag": "Problem Solving",
"level1ChildTags": [
{
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "4uKXvRK0veAoEuk2yAuQ2Y"
}
},
{
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "3QMVgykrBey8KQ2SOw8CU6"
}
}
],
"displayChildTags": true
我希望获得1级子标签的名称字段如何获取它?
答案 0 :(得分:0)
当您检索链接的条目或资产时,您得到的是具有sys属性的此对象,该属性包含与链接类型相关的元数据(在您的情况下,它告诉您它是一个条目,它包含ID)。此外,在JSON响应的顶层,您应该获得一个包含所有链接资产的数组的“包含”属性。
默认情况下,API会解析1级链接。如果您想要多个级别(或者不需要),可以使用“include”查询字符串参数(例如include = 2)。
如果您使用其中一个SDK(例如Javascript SDK),他们会在响应中为您解析这些链接并将其替换为实际对象,但默认情况下,REST API不会执行此操作。 / p>
请注意,这只会在您查询集合端点(例如/entries
)时发生,而不会发生在/entries/id
等单项端点上。
有关详情,请查看https://www.contentful.com/developers/docs/concepts/links/和https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/entries/entry/query-entries?console=1
答案 1 :(得分:0)
如下面的页面所述,您可以使用include
请求参数指定一个级别,以获取对查询的响应中的链接条目或资产,然后您将找到链接的条目和资产在响应的includes.Entry
和includes.Asset
属性中。
https://www.contentful.com/developers/docs/concepts/links/
如果您正在使用JavaScript SDK,它将允许您按预期透明地导航关系图(将链接替换为实际包含的资源)。
答案 2 :(得分:0)
我最初尝试使用getEntry
,但正如文档所说,这不会加载链接的内容。这是我用过的东西:
function getOneNewsItemFromCMS(uid, callback) {
// Using getEntries rather than getEntry ensures that we get linked items too
client().getEntries({ 'sys.id': uid })
.then(function (entries) {
const item = processContentfulNewsItems(entries.items)[0];
callback(item);
});
}
函数processContentfulNewsItems
将Contentful返回的JSON格式映射到我的React对象所期望的格式。