如何从同一个graphQL查询返回单个或多个结果?
我已经设置了一个如何从同一个graphQL查询返回单个或多个结果?,graphql,Graphql,我已经设置了一个GraphQL端点,该端点返回给我一个客户端 query { client(id:1) { clientId } } 另一个返回客户端列表的 query { clients { clientId } } 对于这两个graphql查询,我有两个支持db查询,但是有没有一种方法可以同时对这两个查询使用一个query?或者什么是处理这个问题的graphql方法?graphql处理这个问题的方法正是您所做的。您通常需要在模式中使
GraphQL
端点,该端点返回给我一个客户端
query {
client(id:1) {
clientId
}
}
另一个返回客户端列表的
query {
clients {
clientId
}
}
对于这两个graphql
查询,我有两个支持db查询,但是有没有一种方法可以同时对这两个查询使用一个query
?或者什么是处理这个问题的graphql
方法?graphql处理这个问题的方法正是您所做的。您通常需要在模式中使用单独的字段来处理检索一个项与检索多个项的问题,就像在REST API中为这些项使用单独的端点一样。您可以使用单个端点来返回GraphQList
类型。此列表可以包含一个对象,也可以包含多个对象
在您的情况下,该单一端点将是客户机
。您只需使用后端来查看GraphQLAPI的使用者是否提供了任何参数,即clientId
。如果提供了clientId
,请根据提供的clientId
过滤您的clienterpo
。否则,返回客户端的整个列表(repo)
clients: {
type: new GraphQLList(clientType), <--- Note this is a GraphQLList type
args: {
id: {
type: GraphQLInt
},
},
resolve: (parent, args) => {
if (args.id) {
return clientRepo.find(args.id);
}
return clientRepo.findAll();
}
}
客户端:{
类型:新的GraphQList(clientType){
如果(参数id){
返回clientRepo.find(args.id);
}
返回clientRepo.findAll();
}
}
您可能希望访问以下链接: