从Contentful更新Algolia时,如何包含关联条目的完整数据?
问题:Contentful Webhook 自定义Payload如何携带关联条目的完整数据?
我的Contentful内容模型如下:
// MOVIE 模型 { title: string, director: reference }
// DIRECTOR 模型 { name: string }
通过Contentful Webhook向Algolia发送数据时,当前收到的数据格式是:
{ title: "Vertigo", director: { sys: { type: "Link", linkType: "Entry", id: 123456789 } } }
我期望的数据格式为:
{ title: "Vertigo", director: { name: "Alfred Hitchcock" } }
目前使用的自定义Webhook Payload如下:
{ "title": "{ /payload/fields/title/en-US }", "director": "{ /payload/fields/director }" }
请问如何修改Payload,让发送的数据包含关联条目的完整数据而非仅ID?
解决方案
要在Contentful Webhook的自定义Payload中获取关联条目的字段数据,需要通过深度路径引用直接定位到关联条目的具体字段,具体操作如下:
确认关联字段的本地化状态:如果你的
director关联字段开启了本地化,路径中需要指定语言代码(如en-US);未开启则可省略。修改自定义Payload的director字段路径:
将原来仅引用关联字段的写法,替换为指向关联条目name字段的完整路径,支持直接嵌套JSON结构:若
director字段开启本地化:{ "title": "{ /payload/fields/title/en-US }", "director": { "name": "{ /payload/fields/director/en-US/fields/name/en-US }" } }若
director字段未开启本地化:{ "title": "{ /payload/fields/title/en-US }", "director": { "name": "{ /payload/fields/director/fields/name/en-US }" } }
验证生效:配置完成后,当MOVIE条目发布时,Webhook会自动填充关联导演条目的
name字段值,发送符合预期格式的数据到Algolia。
内容的提问来源于stack exchange,提问作者Lane
相关产品推荐
相关产品推荐

