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?
謝謝!
總結
以上是生活随笔為你收集整理的java+object+graph,graphql-go:使用Object作为查询的输入参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java监听窗口饮品,Java 完成部分
- 下一篇: matlab作动态函数曲线图,[转载]M