如何从同一个 graphQL 查询返回单个或多个结果?
Posted
技术标签:
【中文标题】如何从同一个 graphQL 查询返回单个或多个结果?【英文标题】:How do I return a single or multiple results from the same graphQL query? 【发布时间】:2017-07-10 11:30:50 【问题描述】:我设置了一个GraphQL
端点,它返回一个client
query
client(id:1)
clientId
另一个返回clients
列表
query
clients
clientId
我对这 2 个 graphql
查询有 2 个后备数据库查询,但是有没有办法为这两个查询提供一个 query
?或者graphql
的处理方式是什么?
【问题讨论】:
【参考方案1】:处理这个问题的 GraphQL 方式正是您所做的。您通常需要架构中的单独字段来处理检索一项与多项,就像您在 REST API 中为这些设置单独的端点一样。
【讨论】:
【参考方案2】:您可以有一个返回 GraphQLList
类型的端点。此列表可以包含一个对象,也可以包含多个对象。
在您的情况下,该单一端点将是 clients
。您只需要使用您的后端来查看您的 GraphQL API 的使用者是否提供了任何参数,即clientId
。如果提供了clientId
,则通过提供的clientId
过滤您的clientRepo
。否则返回clients
的整个列表(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();
您可能想访问以下链接:
https://jaketrent.com/post/return-array-graphql/
https://***.com/a/52773152/4195803
【讨论】:
以上是关于如何从同一个 graphQL 查询返回单个或多个结果?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用一个查询来解决 graphQL 中的多个 Rest 往返?