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

Hasura中如何移除Action响应中的action_name键?

Hasura响应转换提取Action响应Body的问题解决

问题场景

使用Hasura的响应转换功能时,需要从Action的响应中提取内层的response_body,但Action返回的响应结构如下:

{
  "action_name": {
    // response_body具体内容
  }
}

期望最终返回的结果是直接返回内层的response_body,不带外层的action_name键:

{
  // response_body具体内容
}

使用{{$body}}会保留外层的action_name结构,尝试用{{$body.action_name}}提取时,触发如下错误:

{
    "code": "unexpected",
    "error": "响应转换失败",
    "internal": [
        {
            "error_code": "属性错误",
            "message": "'Object'没有属性'action_name'.",
            "source_position": {
                "end_column": 17,
                "end_line": 0,
                "start_column": 1,
                "start_line": 0
            }
        }
    ],
    "path": "$"
}

解决方法

方法1:使用Action的真实名称替换占位符

action_name是你定义的Action的实际名称(比如你的Action叫get_user_info,则响应里的键是get_user_info),将响应转换表达式中的action_name替换为真实的Action名称即可。例如:

{{$body.get_user_info}}

方法2:动态提取唯一顶层键的值

如果不想硬编码Action名称(比如需要复用转换规则的场景),可以用以下两种方式动态提取:

  • Handlebars遍历语法:利用Action响应只有一个顶层键的特性,遍历并返回值:
    {{#each $body}}{{this}}{{/each}}
    
  • JSONPath语法:直接匹配所有顶层键的值:
    {{$body.*}}
    

内容的提问来源于stack exchange,提问作者Punit Sureka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:46:06