我有這個GraphQL類型:解決在GraphQL列表字段沒有結構
type User {
id: String
name: String
}
通過
var UserObject = graphql.NewObject(graphql.ObjectConfig{
Name: "User",
Fields: graphql.Fields{
"id": &graphql.Field{
Type: graphql.String,
},
"name": &graphql.Field{
Type: graphql.String,
},
},
})
定義在我的根查詢,我想一些用戶查詢字段users
鏈接:
var RootQuery = graphql.NewObject(graphql.ObjectConfig{
Name: "RootQuery",
Fields: graphql.Fields{
"users": &graphql.Field{
Type: graphql.NewList(UserObject),
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
return Users{
User{
ID: "1",
NAME: "John",
},
User{
ID: "2",
NAME: "Jess"
}
}, nil
},
},
},
})
type User struct {
ID string
NAME string
}
type Users []User
正如你看到的,我有一個User
和Users
數據類型。到現在爲止還挺好。
現在,想象一下,我無法創建User
或Users
結構,那麼我可以在Resolve
函數中返回什麼而不是它們呢?
我想過一個[]map[string]string
。它會是這樣的:
var RootQuery = graphql.NewObject(graphql.ObjectConfig{
Name: "RootQuery",
Fields: graphql.Fields{
"users": &graphql.Field{
Type: graphql.NewList(UserObject),
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
users := []map[string]string {
map[string]string {
"id" : "1",
"name" : "John",
},
map[string]string {
"id" : "2",
"name" : "Jess",
},
}
return users, nil
},
},
},
})
但它不起作用。每個屬性在查詢結果中爲nil
。有沒有辦法解決這個問題?請記住,我無法創建User
結構。這必須是「通用的」。
你可以提供你傳遞給'graphql.NewList'的'UserObject'的定義嗎? – mkopriva
完成。這是類型的定義用戶 –