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

GraphQL自省错误求助:输入类型不匹配问题排查解决

问题分析与解决方案

第一个错误:无效/不完整的自省结果

这个错误本质是后端GraphQL服务处理自省查询(前端同步Schema依赖的查询)时,返回了错误而非有效的data字段。最初的问题大概率是AccommodationInput中引用的AccommodationMeta未定义或不符合规范,导致后端Schema无法正常加载,自省查询失败。

第二个错误:参数必须使用Input类型

你定义的AccommodationPictureMeta是普通GraphQL type(用于定义查询返回结构),但在AccommodationInput这类输入类型中,所有嵌套结构必须使用input类型,不能直接引用普通type,这就是报错提示“received: [AccommodationPictureMeta]”的核心原因。

修复步骤

  • 将AccommodationPictureMeta从type改为input类型:
input AccommodationPictureMeta {
     id: ID!
     "The Upload picture custom alt value."
     alt: String!
}
  • 检查AccommodationInput中引用的AccommodationMeta和I18nDescription,确保它们也都是input类型(而非普通type)。示例修改:
input AccommodationMeta {
  # 补充你的字段定义,比如关联图片元数据
  pictures: [AccommodationPictureMeta!]
}

input I18nDescription {
  # 补充你的国际化字段定义
  locale: String!
  text: String!
}
  • 确保后端GraphQL服务能正常启动,无Schema语法错误。可通过GraphQL Playground执行自省查询验证:
query IntrospectionQuery {
  __schema {
    types {
      name
    }
  }
}
  • 重新运行前端download-schema脚本,确认错误消除。

修正后的完整Schema示例

# 先定义所有依赖的input类型
input I18nDescription {
  locale: String!
  text: String!
}

input AccommodationPictureMeta {
  id: ID!
  "The Upload picture custom alt value."
  alt: String!
}

input AccommodationMeta {
  pictures: [AccommodationPictureMeta!]
}

input AccommodationInput {
  id: ID @globalId(decode: ID)
  "The name of the Accommodation."
  name: [I18nDescription!]
  "The status of the Accommodation."
  status: String
  "The Meta of the Accommodation"
  meta: [AccommodationMeta!]
}

extend type Mutation @guard @namespace(field: "App\\GraphQL\\Accommodation\\Mutations") {
  "Create an Accommodation."
  accommodationCreate(input: AccommodationInput!): AccommodationCreatePayload
    @field(resolver: "AccommodationCreateMutation")
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:20:29