我已设法通过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
答案 0 :(得分:1)
您需要向主Query对象添加user
查询。
假设您的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) {
...
}
}