【问题标题】:GraphQL::Client::ValidationError: Type mismatch on variable $id and argument eq (String! / ItemId)GraphQL::Client::ValidationError:变量 $id 和参数 eq 上的类型不匹配(字符串!/ ItemId)
【发布时间】:2020-07-07 08:53:18
【问题描述】:

我想从 DatoCMS 获取特定数据,所以我需要在我的 GraphQL 查询中传递一个参数。问题是我遇到了一个错误:

GraphQL::Client::ValidationError: Type mismatch on variable $id and argument eq (String! / ItemId)

我正在使用 ruby​​ graphql-client gem 来提出这个请求(可能并不重要),这是我第一次使用 Graphql。

在我的查询下方:

query($id: String!) {
  allTexts(filter: {id: {eq: $id}}) {
    title
    isSeparateActivity
    shortDescription
    longDescription
    text {
      article
    }
    author
    _updatedAt
    _createdAt
    length
  }
}

如果我将 query($id: String!) 更改为 query($id: ID!) 我会收到新错误:

GraphQL::Client::ValidationError: ID isn't a defined input type (on $id)

【问题讨论】:

    标签: ruby graphql


    【解决方案1】:

    您的查询似乎使用String!,它告诉您它必须是ItemId。如果没有端点来测试它,看起来如果你使用这个查询,它应该可以工作:

    query($id: ItemId) {
      allTexts(filter: {id: {eq: $id}}) {
        title
        isSeparateActivity
        shortDescription
        longDescription
        text {
          article
        }
        author
        _updatedAt
        _createdAt
        length
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2019-04-26
      • 2018-01-29
      • 2021-10-21
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      相关资源
      最近更新 更多