You need to enable JavaScript to run this app. Hasura GraphQL HTTP 请求异常:如何正确构建含query字段的请求体?
优惠活动
大模型
产品
解决方案
定价
更多

Hasura GraphQL HTTP 请求异常:如何正确构建含query字段的请求体?

Hasura HTTP请求拉取数据的正确实现方法
  • 基础请求规则
    • 固定使用POST方法请求,目标地址为Hasura服务对应的GraphQL端点,默认路径为/v1/graphql
    • 必带请求头:Content-Type: application/json;若项目开启权限校验,需补充对应认证头(如管理员密钥对应的x-hasura-admin-secret、用户身份访问令牌等)
  • 核心请求体的正确结构(最易出错的环节)
    • 请求体为标准JSON结构,顶层仅保留query键,其值必须是字符串类型的完整GraphQL查询代码,禁止将GraphQL查询拆为嵌套JSON对象传入
    • 字符串内部的双引号需要做转义处理,避免触发JSON解析失败

正确的请求体示例:

{
  "query": "query MyQuery { t_user(where: {id: {_eq: \"2\"}}) { name id } }"
}
  • 高频问题修正
    • 类型适配:如果t_user表的id字段为整数类型,上述查询中_eq匹配的"2"需要去掉外层引号,直接写数字2,否则会报字段类型不匹配的错误
    • 格式兼容:不要在JSON结构中直接嵌入无转义的多行GraphQL代码,部分解析器会直接判定格式非法,建议将查询内容整合为无语法冲突的合法字符串

可直接用于测试的curl命令示例:

curl -X POST \
  https://你的Hasura服务地址/v1/graphql \
  -H 'Content-Type: application/json' \
  -H 'x-hasura-admin-secret: 你的项目密钥' \
  -d '{
    "query": "query MyQuery { t_user(where: {id: {_eq: \"2\"}}) { name id } }"
  }'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 20:45:11