所以我在Contentful仪表板中创建了一个webhook,当条目发布或删除时触发,并且它可以正常工作。但是,我希望能够通过Content Management JavaScript API发布条目,而不会触发webhook。我可以采取哪些措施来实现这一目标吗?
答案 0 :(得分:2)
不幸的是,如果通过API或网络应用直接发布条目,则没有区别。网络应用程序只需调用API。
可能的做法是检查Web挂钩中的已发布条目,并评估代码是否应该执行。也许通过直接通过API发布时设置隐藏字段。
例如,假设您有一个字段publishedThroughAPI
,请确保此字段在传递API中被省略且不可编辑:
然后在通过JavaScript API发布之前将此字段设置为true,并在webhook中检查此字段,并在字段设置为true时简单地返回。
webhook将收到包含已发布条目的有效内容。基本上与正常请求相同的有效负载,不同之处在于它将包含每个语言环境。以下是一个小例子:
{
"sys": {
//System meta data, created at, published at etc.
},
"fields": {
//All fields of the entry.
"title": {
"en-US": "English title",
"sv-SE": "Swedish title"
},
"publishedThroughAPI": {
"en-US": true,
"sv-SE": true
}
}
}