掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

最佳webhook实践

现代程序所使用的API越来越多,无服务器架构也越来越流行。API提供商不再仅仅是用传统的REST端点。因为传统REST API功能有限,无法为你提供方便的功能,例如有东西出现变化的时候立刻对你进行提醒。

 

API进行polling操作,是一个非常浪费时间的事情。一些事件只是偶尔发生,因此你必须要搞清楚polling call的频率,而且你很可能无法真正搞清。

webhooks很好的解决了这个问题。webhooks能够让web服务使用HTTP POST请求来提供其他服务的接近实时的信息。

 

webhook能够在事件发生的时候将数据提供给其他程序,也就是说你能够立刻收到提醒。对于服务提供商和使用者来说,webhook都非常实用。如果你的API不支持webhook,那么你必须要改进了(说你呢,Salesforece)。

在整合了超过100个服务的API之后,我可以说那些使用了webhookAPI真的非常好用。现在我们就来看看如何才能做一个好的webhook

自解性与连贯性

好的webhook服务,在事件提醒方面,应该能够提供尽可能多的信息。除此之外,它还要给客户端提供额外的信息,让客户端知道它根据这个事件应该采取何种反应。

POST请求应该包含一个timestampwebhook_id如果你提供了多种类别的webbook,还需要包含一个type属性。

 

GitHub这一点做的就非常好。

允许使用者定义多URL

在设计webhook的时候,你还应该考虑一下使用者的感受。只让他们在一个URL下订阅事件,这并不是好的开发者体验。如果我需要跨系统监控同一事件,你最好能让我添加多个URL。这一点ClearbitIntercomAPI做的就很好。

 

基于UI的订阅和基于API的订阅

在准备整合的时候,我们要如何处理订阅的创建?一些服务设计了一个UI,指导开发者创建订阅。还有一些服务为此写了一个API

 

在这一点上做的最好的是Slck,它两个都支持。

webhook安全性

在有人配置了他的服务,让服务从你的webhook那里接受payload之后,它也会监听任何其他发向这个端点的paypload

如果用户的程序需要处理敏感数据,你的webhook最好可以对这个请求进行验证,确保它是你的服务所生成的请求,而不是某个第三方服伪装成你。这并不是必须要有的特性,但是如果有的话,它可以让你的webhook更安全。

你可以用多种方式来保证安全性。如果你想让使用者麻烦一点的话,你可以让他自己使用IP地址创建白名单——还有一个更简单的方法,那就是设置一个秘密的token来验证信息。

你可以像Slack或是Facebook那样简单的使用文本来分享密钥。

 

你也可以使用一些更复杂的设置。例如Mandrillwebhook请求,其中包含了一个额外的HTTP headerwebhook POST请求,X-Mandrill-Signature里面包含了请求的签名。要想对webhook请求进行验证,你可以使用和Mandrill一样的方法,生成一个签名,用它与X-Mandrill-Signature header进行比对。

给订阅设定过期时间

虽然现在已经很少有人给订阅设定截止日期了,但是它已经成为了一个比较普遍的功能。Microsoft Graph API就是一个很好的例子。在没有更新的情况下,使用Microsoft Graph API创建的任何订阅都会在72小时之后过期。

从数据提供商的角度来看,这个功能有其实际意义。谁也不想持续的发送那些已经无用,或是想要使用数据的POST请求。

总结

webhook现在还是一个碎片化比较严重的领域,但是随着时间的推移,它一定会形成一个比较统一的标准。

如果你想要给自己的API加入webhook,那么我建议你好好看看GitHubStripeIntercomSlackAPI是怎么做的。

原文来自:SDK.cn

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • AI文本审核服务

    基于大模型能力构建的文本审核服务,能够高效精准地识别各类文本违规内容。与传统文本内容安全审核方案相比,具备更强大的语言理解与分析能力,能精准识别复杂、隐晦的违规内容,突破了传统模式的局限。

    基于大模型能力构建的文本审核服务,能够高效精准地识别各类文本违规内容。与传统文本内容安全审核方案相比,具备更强大的语言理解与分析能力,能精准识别复杂、隐晦的违规内容,突破了传统模式的局限。

  • AI图片审核服务

    基于图片审核大模型服务,能够全方位识别图片中的色情、性感、涉政、暴恐、违禁、宗教、引流广告、不良等违规内容,并支持返回大模型的审核结果。结合大模型和专家小模型,提供更细粒度的标签(如色情细分、具体行为、特定物体等),识别范围更广、标签更丰富。 综合效果最佳,适合对误判率、漏判率都有较高要求的场景。

    基于图片审核大模型服务,能够全方位识别图片中的色情、性感、涉政、暴恐、违禁、宗教、引流广告、不良等违规内容,并支持返回大模型的审核结果。结合大模型和专家小模型,提供更细粒度的标签(如色情细分、具体行为、特定物体等),识别范围更广、标签更丰富。 综合效果最佳,适合对误判率、漏判率都有较高要求的场景。

  • AIGC图片风险检测

    针对AIGC场景,检测AIGC生成的图片是否存在违规或者不宜传播的内容。建议AIGC生成的图片都进行该项检测。

    针对AIGC场景,检测AIGC生成的图片是否存在违规或者不宜传播的内容。建议AIGC生成的图片都进行该项检测。

  • AI生成图片鉴别

    检测图片是否疑似由AI生成合成、图片是否含有AI生成合成隐式标识(如果有隐式标识时支持返回图片AIGC元数据信息)。

    检测图片是否疑似由AI生成合成、图片是否含有AI生成合成隐式标识(如果有隐式标识时支持返回图片AIGC元数据信息)。

  • 诈骗风险感知检测

    根据身份证/手机号进行核验号码是否有涉险诈骗风险。

    根据身份证/手机号进行核验号码是否有涉险诈骗风险。

0512-88869195
客服微信二维码

微信扫码,咨询客服

数 据 驱 动 未 来
Data Drives The Future