go - 使用 Apollo Client 和 graphql-go 的 Graphql 查询错误为 'Unknown type Int'

标签 go graphql apollo

我有一个使用 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。我错过了什么吗?非常感谢帮助,这种基本的东西成为如此巨大的障碍物感觉很奇怪。

最佳答案

正如另一篇提到必须从 int 转为 float 的帖子,发生此错误是因为在您的 graphQL 模式中设置的类型与您在查询时尝试使用的类型相冲突。
它说:“未知类型的 Int”
但它真正的意思是:“预期类型为 Float 但得到 Int”然后你会在错误的地方更改它。

关于go - 使用 Apollo Client 和 graphql-go 的 Graphql 查询错误为 'Unknown type Int',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50204685/

相关文章:

go - 枚举作为变量的属性

angular - graphql-tag 的 Webpack 加载器未在 Angular 8 中加载

Golang CLI 眼镜蛇计数标志

go - 将上下文传递给 gorilla mux - go 习语

go - 在 Golang 项目中正确包含 C 库(按源代码)

javascript - 如何使用 Prop 或状态在点击时渲染或不渲染这 5 种形式中的 1 种?

graphql - 如何正确地将变量传递给 apollo useQuery?

node.js - 为什么测试中的spyOn函数不能与sendGrid一起使用?

graphql - 如何将 graphiql 连接到 javascript 以外的其他实现

javascript - 将 Data 对象从 apollo hook 调用转换为 Javascript 数组