当前位置: 首页 > 知识库问答 >
问题:

在Apollo客户端和graphql-go中出现带有“未知类型int”的Graphql查询错误

黎曾笑
2023-03-14

我已经用graphql-go实现了一个graphql服务器,我在前端使用Apollo。不带参数的简单查询和使用输入对象类型的突变可以很好地工作,但出于某种原因,在查询中传递标量类型参数将返回错误:

[{"message":"Unknown type \"Int\".","locations":[{"line":1,"column":19}]}]

我的使用再简单不过了;在客户端,我的查询是:

export const GET_CLIENT = gql`
  query client($id: Int) {
  client(id: $id) {
    id
    name
  }
}`
<Query
  query={GET_CLIENT}
  variables={{
    id: 1
  }} />

它在后端解析为此字段:

// ClientQuery takes an ID and returns one client or nil
var ClientQuery = &graphql.Field{
Type: ClientType,
Args: graphql.FieldConfigArgument{
    "id": &graphql.ArgumentConfig{
        Type: graphql.Int,
    },
},
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
    return p.Context.Value("service").(*model.Service).FindClientByID(id)
},
}

我尝试过传递输入对象、字符串等,但似乎没有查询参数、标量或其他参数在后端得到满足。我已经尝试了GraphQL-Go的master和V0.7.5。我是不是漏掉了什么?非常感谢帮助,这种基本的东西成为如此巨大的阻滞器感觉很奇怪。

共有1个答案

谭研
2023-03-14

正如另一篇文章提到的必须从int转换为float,出现此错误是因为在graphQL模式中设置的类型与查询时试图使用的类型冲突。

它说:“未知类型int”

但它真正的意思是:“预期的类型Float但得到了int”,那么您将在错误的地方更改它。

 类似资料:
  • 该查询返回一个“活动”数组,但“归档”数组仍然为空。 我已经尝试了切换(首先将存档别名,切换布尔值以确保我可以访问存档活动的数据等)。问题显然出在“存档”别名上。 当我对Strapi的GraphQL playground使用相同的查询时,我会得到所需的结果: ...返回... 如何使查询在Vue.js中与Apollo一起工作?

  • 我使用laravel-graphql作为后端GraphQL服务,使用vue-apollo作为前端客户端。 在我的Vue组件中,我有一个gql查询,如下所示:(关系:一首歌有更多的歌曲部分) 现在有一个突变,我想用它来更新给定的歌曲:

  • 我尝试执行Graphql客户端查询。遗憾的是,我找不到任何关于如何使用动态图QL客户端进行简单变异的文档或示例。这是文件https://quarkus.io/guides/smallrye-graphql-client. {0}..{4} 是可变占位符。有人知道如何使用DynamicGraphlQlClient执行这个查询吗? 谢谢

  • 我正在做一个项目,并试图在我的SpringBoot应用程序中使用GraphQL后端服务器。我已经编写了一个连接到GraphQL后端并创建/获取数据的客户端,但是当我试图从应用程序传递变量并通过查询时,它会抛出一个错误。但是如果我只是注释变量部分并直接在查询中硬编码值,它就可以正常工作。 突变查询-突变($name: String!){createList(name:$name){更新listId

  • 在后端,我进行了调试,并收到了请求,它根据客户机上设置的令牌查找用户,但随后什么也不做,只在我试图从应用程序发送时返回给我400,在graphiql浏览器上。 我错过了什么?非常感谢。

  • 我正在使用Apollo服务器,试图为一个电子商务应用程序构造一个嵌套查询。我正在查询一个rest api以检索购物篮中的物品。 然而,此请求的响应并不包含我们需要的所有产品信息。因此,我尝试嵌套一个附加查询,使用返回的参数之一作为变量,以获得所需的附加产品信息。 我已经看到了嵌套查询示例,据我所知(我对GraphQL和Apollo尤其陌生),这是GraphQL的一大优点。但是我还没有看到任何嵌套查