You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hasura的REST端点中获取原始请求体以配置无验证Webhook?

实现无验证Hasura Webhook REST端点

完全可以实现你要的需求,以下是具体操作步骤:

1. 确认GraphQL Mutation已配置完成

先确保Hasura中已经创建了myMutation这个mutation,它需接受payload: String!参数,并返回mutationResult字段。如果还未创建,可在Hasura控制台的Data或GraphQL页面完成定义(可关联自定义SQL函数或数据库操作)。

2. 创建指定的REST端点

在Hasura控制台的REST API页面操作:

  • 点击Create REST Endpoint
  • 设置端点路径为/callback,最终完整路径即为http://localhost:8080/api/rest/callback
  • 选择请求方法为POST
  • 在GraphQL Query区域填入你的mutation代码:
    mutation MyMutation ($rawBody: String!) {
      myMutation(payload: $rawBody) {
        mutationResult
      }
    }
    
  • 配置请求变量映射:将$rawBody的来源设置为Raw Body,Hasura会把整个请求体以字符串形式传入该变量,实现接收任意数据的需求

3. 关闭端点身份验证

默认Hasura REST端点要求认证,需关闭验证以允许无授权访问:

  • 在该REST端点的配置页面,找到Permissions或Authentication设置项
  • 勾选Allow unauthenticated access(允许未认证访问),此后任何POST请求均可直接访问该端点,无需携带认证令牌

4. 测试端点功能

用curl或Postman发送测试请求:

curl -X POST http://localhost:8080/api/rest/callback \
  -H "Content-Type: application/json" \
  -d '{"test": "sample data"}'

此时Hasura会把完整请求体字符串传给myMutation的payload参数,执行后返回mutationResult字段内容。无论请求体是JSON、纯文本还是表单数据,都会被完整以字符串形式传入,满足你接受任意数据的要求。

内容的提问来源于stack exchange,提问作者The Hoff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:50:26