Webhook 属于一种事件驱动的消息推送机制。当特定事件被触发时,事件源会主动向预先配置的 webhook URL 发起 HTTP 请求。远程服务在收到请求后,会根据请求中携带的参数进行解析,并按照业务逻辑完成相应处理。
package main
import "github.com/gin-gonic/gin"
type WebhookRequest struct {
Event string `json:"event" binding:"required"`
}
func main() {
r := gin.Default()
r.POST("/webhook", func(c *gin.Context) {
var req WebhookRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(400, gin.H{"error": err.Error()})
return
}
webhookEvent := req.Event
c.String(200, "webhook event: %s", webhookEvent)
})
r.Run(":8080")
}