Contentful:防止 webhook 在使用 Content Management 时触发 API
Contentful: Prevent webhook from triggering, when using Content Management API
所以我在 Contentful 仪表板中创建了一个 webhook,它会在条目发布或删除时触发,并且它会正常工作。但是,我希望能够通过内容管理 JavaScript API 发布条目,而不触发 webhook。我可以采取什么措施使这成为可能吗?
遗憾的是,通过 API 或直接通过 Web 应用程序发布条目没有区别。 Web 应用程序只是在后台调用 API。
可能的做法是检查网络挂钩中已发布的条目并评估代码是否应执行。也许通过直接通过 API 发布时设置隐藏字段。
例如,假设您有一个字段 publishedThroughAPI
,您确保该字段在交付时被省略 API 且不可编辑:
然后在通过 JavaScript API 发布之前将此字段设置为 true 并在您的 webhook 中检查此字段,如果该字段设置为 return 则简单地退出挂钩是的。
网络钩子将接收包含您发布的条目的负载。基本上与普通请求相同的有效负载,不同之处在于它将包含每个语言环境。下面是一个小例子:
{
"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
}
}
}
所以我在 Contentful 仪表板中创建了一个 webhook,它会在条目发布或删除时触发,并且它会正常工作。但是,我希望能够通过内容管理 JavaScript API 发布条目,而不触发 webhook。我可以采取什么措施使这成为可能吗?
遗憾的是,通过 API 或直接通过 Web 应用程序发布条目没有区别。 Web 应用程序只是在后台调用 API。
可能的做法是检查网络挂钩中已发布的条目并评估代码是否应执行。也许通过直接通过 API 发布时设置隐藏字段。
例如,假设您有一个字段 publishedThroughAPI
,您确保该字段在交付时被省略 API 且不可编辑:
然后在通过 JavaScript API 发布之前将此字段设置为 true 并在您的 webhook 中检查此字段,如果该字段设置为 return 则简单地退出挂钩是的。
网络钩子将接收包含您发布的条目的负载。基本上与普通请求相同的有效负载,不同之处在于它将包含每个语言环境。下面是一个小例子:
{
"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
}
}
}