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

GraphQL 内省查询时部分字段type.name返回空值问题求解

问题根源

这不是配置错误,是你的内省查询逻辑没有兼容GraphQL的类型包装规则:

  • GraphQL的类型系统分为基础类型(标量、对象、枚举等)和包装类型(NonNull非空、List列表)两类
  • 包装类型本身没有name属性,实际的基础类型信息存储在ofType字段中

你Schema里_id: ID!、title: String!、_ts: Long!都是被NonNull包装过的类型,你直接查询外层type.name拿到的就是Null值,和实际Schema定义一致。

解决方法

调整内省查询,递归查询ofType字段获取最终的基础类型名称,下面是兼容单层/多层包装(比如[String!]!这类嵌套场景)的查询语句:

{
  __type(name: "Todo") {
    fields {
      name
      type {
        name
        ofType {
          name
          ofType {
            name
            ofType {
              name
              # 可以根据业务需要继续嵌套更多层ofType,覆盖所有可能的包装层级
            }
          }
        }
      }
    }
  }
}

执行上述查询后,你就能在type.ofType.name字段拿到_id对应的ID、title对应的String、_ts对应的Long类型名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:39:00