如何从Content Delivery API响应的getEntries方法中删除sys对象?我试图使用select搜索参数进行查询,但它不会删除sys对象。
getProducts(query?: object): Promise<Entry<any>[]> {
return this.cdaClient.getEntries(Object.assign({
content_type: 'product',
select: 'fields',
include: 1
}, query))
.then(res => res.items);
答案 0 :(得分:0)
Heyooo。
由于the way how Contentful's linking mechanism work,集合端点的JSON响应包括两个主要部分– items
和includes
。
{
"items": [
{
"sys": {
"type": "Entry",
"id": "4rJn9OJsBiAKmeoiiw40Ko",
},
"fields": {
"name": "Menu for Humans",
"stickiness": 999.3,
"menuMeal": [
{
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "3HkMtbj6hqcMYEqWIOm6SQ"
}
}
]
}
},
],
"includes": {
"Entry": [
{
"sys": {
"id": "3HkMtbj6hqcMYEqWIOm6SQ",
"type": "Entry",
...
},
"fields": {...}
},
...
}
]
}
items
中的条目引用了includes
对象中的其他项目。提供的SDK可以为您解决这些难题,因此无论响应结构如何,您都可以递归地访问树下的字段(例如entry.fields.anotherEntry.fields
)。
这就是you unfortunately can't omit the sys
property in the JS sdk的原因,因为它是链接解析所必需的。