【发布时间】:2018-10-16 16:45:01
【问题描述】:
我有一个用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。我错过了什么吗?非常感谢您的帮助,这种基本的东西会成为如此巨大的障碍,感觉很奇怪。
【问题讨论】:
-
你有没有想过这个问题?我遇到了一个类似的错误,我的结果是由隐藏在查询中的另一个错误引起的。使用您的查询作为开始,我的错误是
id参数实际上被命名为其他名称。一旦我修复了我的查询以便其他错误消失了,关于 Int 的错误也消失了 -
我没弄明白,但我会试试这个,谢谢你的 ping。
-
自从发表评论以来,我已经打过几次了。在每种情况下,我的查询在其他方面都是错误的。我认为这只是 graphql 工具中的错误报告