我设法通过GraphQl获取以下数据:
{
"data": {
"city": {
"name": "Eldorado",
"users": [
{
"username": "lgraham1"
},
{
"username": "ehowell"
},
{
"username": "cbauch"
}
]
}
}
}
我有QueryType,CityType和UserType。在我的QueryType中,我以GraphQllist(USERTYPE)来获取城市并显示用户。如果我想显示单个用户,该怎么办?
我的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
您需要在主查询对象中添加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) {
...
}
}