1

我正在使用 Contentful 并且有一个使用一系列相关字段的内容模型。我正在使用 JS api 在 NodeJS 中查询我的内容。如果我调用获取条目,就像这样

contentfulClient.getEntries({
    content_type: '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 一样

4

1 回答 1

6

不幸的是,在直接通过 id 获取内容项时,Contentful 不包括引用的内容。解决此问题的一种方法是改用该getEntries方法,但通过sys.id. 这样,您将获得相同的条目,虽然在一个数组中,但它也将包括引用的内容。

contentfulClient.getEntries({
   content_type: 'homePage',
   sys.id: '1234567890'
})

这也会导致单个请求而不是多个请求,就像您在使用该GetEntry方法然后手动解析每个引用的内容项时最终会得到的那样。

于 2017-03-13T17:30:49.780 回答