我正在使用Contentful,并且拥有一个使用一系列相关字段的内容模型。我使用JS api在NodeJS中查询我的内容。如果我调用get条目,就像这样
contentfulClient.getEntries({
content_type: 'homePage'
})
它获取homePage类型的所有内容,并包含每个相关字段的实际字段数据,如此
"subField": {
"sys": {
"space": {
"sys": {
"type": "Link",
"linkType": "Space",
"id": "#######"
}
},
"id": "#######",
"type": "Entry",
"createdAt": "2017-03-10T15:58:25.697Z",
"updatedAt": "2017-03-10T15:58:25.697Z",
"revision": 1,
"contentType": {
"sys": {
"type": "Link",
"linkType": "ContentType",
"id": "homeSubField"
}
},
"locale": "en-GB"
},
"fields": {
"category": {
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "#######"
}
},
"subFieldContent": "Some field content"
}
},
但是,如果我使用ID调用特定条目,例如
contentfulClient.getEntry('1234567890')
然后,每个链接的字段仅作为具有ID的引用返回,如
"subField": {
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "#######"
}
},
如何在调用 getEntry 时获取全文,就像我使用 getEntries 一样?
答案 0 :(得分:6)
不幸的是,当直接通过id获取内容项时,Contentful不包含引用的内容。解决此问题的一种方法是使用getEntries
方法,但按sys.id
进行过滤。这样你就会得到相同的条目,虽然在一个数组中,但它也会包含引用的内容。
contentfulClient.getEntries({
content_type: 'homePage',
sys.id: '1234567890'
})
这也会导致单个请求而不是多个请求,因为您在使用GetEntry
方法时最终会手动解析每个引用的内容项。