javascript - 如何查询动态数量的别名?

标签 javascript node.js graphql graphql-js

假设我有一个像这样的 GraphQL 模式:

Schema {
  user($id: ID) {
    id: ID
    name: String
  }
}

我知道如何通过他的 ID 查询一个用户,我可以使用别名来查询多个用户,如下所示:

GetSomeMore {
  john: user(id: "123") {
    name
  }
  mary: user(id: "321") {
    name
  }
}

但是,假设我只有一个用户 ID 列表,并且想查询每个用户的姓名。我该如何编写这样的查询?

我能想出的方法是以太动态生成一个查询别名像 user1, user2 等等,或者实现一个 users(ids: [ID]) 服务器上的边缘。但我觉得应该有更好的解决方案。有吗?

(PS:我的代码示例可能有语法错误,我更多地将其编写为伪代码,以表达我的观点。)

最佳答案

您可以将该功能实现为您的模式的一部分,例如使用 id_in: [String] 参数到 users 查询。

在 Graphcool,我们使用 filter 参数来公开这样的功能。例如,您的查询可以这样完成:

query {
  allUsers(filter: {id_in: ["123", "321"]}) {
    id
    name
  }
}

结果

{
  "data": {
    "allUsers": [
      {
        "id": "123",
        "name": "John"
      },
      {
        "id": "321",
        "name": "Mary"
      }
    ]
  }
}

要阅读有关 filter 参数的更多信息,请检查 the documentation .

关于javascript - 如何查询动态数量的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41259454/

相关文章:

javascript - 在类选择器中传递 jQuery this.id

javascript - 是的, "Proxy"-ing jQuery 的 ready() 函数

javascript - 处理同步事件后会发生什么?

javascript - 如何询问 Meteor 为旧的 Nodejs 构建代码

javascript - NodeJS nimble模块系列功能不起作用

graphql - 如何实现 GraphQL 对多个项目的错误处理?

javascript - 面向对象的 Javascript 和多个 DOM 元素

javascript - 如何 promise 这段 Mongoose 代码?

visual-studio-code - 有一种方法可以在 vscode 中的 ` `(重音符)内语法高亮显示 GraphQl TypeDef 吗?

reactjs - 如何在 React 中使用 Apollo 的多个 useQuery() 钩子(Hook)