如何从同一个graphQL查询返回单个或多个结果?

时间:2017-02-21 01:41:38

标签: graphql

我设置了一个 var isHit = false; for(var j = 0; j < word.length; j++) { if(word[j] === guess) { // sets the element at index j, from word, // of answerArray to guess remainingLetters--; isHit = true; } } if (!isHit) { guessesNr--; } 端点,返回GraphQL

client

和另一个返回query { client(id:1) { clientId } }

的列表
clients

对于这两个query { clients { clientId } } 查询,我有2个支持数据库查询,但是有两种方法可以同时使用graphql个查询吗?或者query处理此问题的方式是什么?

2 个答案:

答案 0 :(得分:2)

GraphQL处理方式正是你完成它的方式。您通常需要在模式中使用单独的字段来处理检索一个项目与多个项目,就像在REST API中为这些项目设置单独的端点一样。

答案 1 :(得分:0)

您可以有一个返回GraphQLList类型的端点。此列表可以包含一个对象,也可以包含多个对象。

在您的情况下,该单个端点将为clients。您只需要使用后端即可查看GraphQL API的使用者是否提供了任何参数,即clientId。如果提供了clientId,请用提供的clientRepo过滤clientId。否则,返回clients的整个列表(仓库)。

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://stackoverflow.com/a/52773152/4195803