gpt4 book ai didi

node.js - GraphQL - 显示列表或单个对象

转载 作者:太空宇宙 更新时间:2023-11-04 00:27:10 24 4
gpt4 key购买 nike

我已成功通过 GraphQL 获取以下数据:

 {
"data": {
"city": {
"name": "Eldorado",
"users": [
{
"username": "lgraham1"
},
{
"username": "ehowell"
},
{
"username": "cbauch"
}
]
}
}
}

我有 QueryType、CityType 和 UserType。在我的 QueryType 中,我通过 GraphQLList(UserType) 获取城市并显示用户。如果提供了id,我想显示单用户怎么办?

我的 API 如下所示:

all cities:
/cities/

single city:
/cities/:city_id

users for particular city:
/cities/:city_id/users

single user:
/cities/:city_id/users/:user_id

最佳答案

您需要向主查询对象添加一个用户查询。

假设您的id是一个Integer,您会这样做

const Query = new GraphQLObjectType({
name: 'RootQuery',
fields: {
// ...
user: {
type: User,
args: {
id: {
type: new GraphQLNonNull(GraphQLInt)
}
},
resolve: function(rootValue, args) {
return db.users.findOne(args)
}
}
}
})

const Schema = new GraphQLSchema({
query: Query,
// ...
});

然后您可以使用查询

{
user (id: 12345) {
...
}
}

或者你可以创建一个函数

query findUser ($id: Int!) {
user (id: $id) {
...
}
}

关于node.js - GraphQL - 显示列表或单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42320747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com