【发布时间】:2018-11-17 02:23:30
【问题描述】:
假设我有一个 (ReST) API,它提供对资源版本的访问。为了实现更低的延迟,我希望在新资源可用时推送通知。一种方法是使用webhooks。 Webhook 似乎通常被视为长期存在(几天、几周……)或半永久性资源。 如今,我们现在可以升级到 websocket 的连接,以实现相对较短的低延迟会话。
我认为仍然存在中间立场,即客户端创建临时 Webhook 以接收实时通知。 对于半永久性资源,由客户端管理订阅是有意义的。 对于临时 webhook,我们需要服务器管理 web-hook 的生命周期,以防客户端忘记自行删除它们。
我没有在网上看到任何关于这种 webhook 的讨论。 transient webhook 是正确的术语吗?
对于何时自动删除它们有什么最佳做法吗?
如果客户端忘记或无法发送 DELETE,服务器应该何时删除资源? 对原始 POST 的回复是否应该包含生存时间? 如果N次尝试后没有回复,它是否应该定期发布探测心跳并保持钩子? 当服务器决定 /foobar/webhooks/ 可以删除时,它应该变成 410 GONE 还是 404?
似乎这里有很好的标准化空间,可以避免所有潜在的陷阱。
我会接受一个我自己改进的答案(也欢迎 cmets),并链接到一个或多个有据可查的方法或描述一些好的模式。
【问题讨论】:
标签: webhooks