如何从getEntries 方法的内容交付 API 响应中删除 sys 对象?我尝试使用选择搜索参数进行查询,但它不会删除 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);
> Heyooo。
由于 Contentful 的链接机制的工作方式,收集终结点的 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
( – 无论响应结构如何。
这就是为什么您很遗憾不能在 JS sdk 中省略sys
属性的原因,因为它是链接解析所必需的。