java+object+graph,graphql-go:使用Object作为查询的输入参数

我试图将一个对象作为参数传递给查询(而不是标量) . 从文档看来,这应该是可能的,但我无法弄清楚如何使其工作 .

我正在使用graphql-go,这是测试模式:

var fileDocumentType = graphql.NewObject(graphql.ObjectConfig{

Name: "FileDocument",

Fields: graphql.Fields{

"id": &graphql.Field{

Type: graphql.String,

Resolve: func(p graphql.ResolveParams) (interface{}, error) {

if fileDoc, ok := p.Source.(data_format.FileDocument); ok {

return fileDoc.Id, nil

}

return "", nil

},

},

"tags": &graphql.Field{

Type: graphql.NewList(tagsDataType),

Args: graphql.FieldConfigArgument{

"tags": &graphql.ArgumentConfig{

Type: tagsInputType,

},

},

Resolve: func(p graphql.ResolveParams) (interface{}, error) {

fmt.Println(p.Source)

fmt.Println(p.Args)

if fileDoc, ok := p.Source.(data_format.FileDocument); ok {

return fileDoc.Tags, nil

}

return nil, nil

},

},

},

})

我正在尝试使用的输入类型(我已尝试过InputObject和标准对象)

var tagsInputType = graphql.NewInputObject(graphql.InputObjectConfig{

Name: "tagsInput",

Fields: graphql.Fields{

"keyt": &graphql.Field{

Type: graphql.String,

},

"valuet": &graphql.Field{

Type: graphql.String,

},

},

})

这是我用来测试的graphql查询:

{

list(location:"blah",rule:"blah")

{

id,tags(tags:{keyt:"test",valuet:"test"})

{

key,

value

},

{

datacentre,

handlerData

{

key,

value

}

}

}

}

我收到以下错误:

wrong result, unexpected errors: [Argument "tags" has invalid value {keyt: "test", valuet: "test"}.

In field "keyt": Unknown field.

In field "valuet": Unknown field.]

问题是,当我将类型更改为字符串时,它工作正常 . 如何将对象用作输入arg?

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值