Logo码如云文档中心

码如云官网 进入后台
Webhook集成

Webhook集成 #

Webhook集成用于码如云将一些重要的业务事件(比如实例创建和表单提交等)通过HTTP的方式推送到客户自身的软件系统。

启用Webhook集成 #

要启用Webhook集成功能,需要先配置好Webhook的接收URL,再选择需要推送Webhook的事件类型。

应用管理页面,点击某应用右侧的更多按钮,再点击Webhook集成,可弹出Webhook集成配置对话框。

Webhook配置

其中:

  • URL:表示需要接收Webhook的URL地址,对应客户自身IT系统的一个HTTP接收端口
  • 用户名:HTTP基本认证的用户名
  • 密码:HTTP基本认证的密码

码如云在推送Webhook数据时,会使用客户设置用户名密码URL发起HTTP请求,请求统一采用HTTP的POST方法,并使用JSON数据格式。

每个应用可以有不同的Webhook配置,这意味着每个应用可以有不同的接收URL,进而也意味着各个应用的Webhook接收模块可以独立开发和独立部署。

在配置好Webhook集成后,还不能立即接收到Webhook事件,还应选择需要推送的Webhook事件类型。Webhook事件类型主要包含两大类,一类是针对实例的事件,在应用设置页面中进行设置,如下图。

实例的Webhook设置

另一类是针对提交的事件,在页面设置中进行设置,如下图。

提交的Webhook设置

接收Webhook #

除了完成Webhook设置,客户的IT人员还需要自行实现URL背后的数据接收代码。例如,对于Java生态,可以使用Spring MVC框架@RestController

由于网络传输时间的不确定性,码如云无法保证Webhook事件到达的顺序。

Webhook推送有可能失败,比如网络不可达或者客户端系统返回了非2xx的HTTP状态码,为此码如云实现了重试机制,每次Webhook推送最多将重试3次,每次重试的时间间隔从500毫秒到2000毫秒不等。也正因如此,码如云有可能对同一个Webhook事件进行多次推送,此时客户方的IT系统需要自行处理幂等性问题,比如可以使处理逻辑本身即是幂等的,或者通过一个数据库表来记录已经处理过的Webhook事件进而用于消重。

在接收Webhook时,建议客户方采用异步方式,即当接收到Webhook事件后不做立即业务处理,而是直接将Webhook事件放到一个消息队列(比如KafkaRabbitMQ等)中,然后立即向码如云返回。之后,由另一个后台组件从消息队列中读取Webhook事件逐一处理。这样的好处是一方面可以较低客户自身IT系统对码如云的耦合与依赖,另一方面可以提升双方系统的处理性能。

Webhook事件 #

当前码如云支持以下Webhook事件: