首页 > 解决方案 > Graphql 语法,用于对数组中具有不同参数的同一字段进行单个查询

问题描述

我正在寻找类似下面的伪查询:

query users($ids: [String!]) {
 "id from $ids": getUser(id){
    id
    name
    dob
  } 
}

得到如下响应:

data: {
 '039ccf5c-3070-4368-b790-0884669e759d': {id: '039ccf5c-3070-4368-b790-0884669e759d', name: 'u1', 'dob': 12-12-12'},
'139ccf5c-3070-4368-b790-0884669e759d': {id: '139ccf5c-3070-4368-b790-0884669e759d', name: 'u1', 'dob': 12-12-12'},
}

这可能吗?

标签: graphql

解决方案


您可以使用别名多次查询同一字段:

query users($id1: String!, $id2: String!) {
  user1: getUser(id: $id1) {
    ...UserFragment
  }
  user2: getUser(id: $id1) {
    ...UserFragment
  }
}

fragment UserFragment on User {
  id
  name
  dob
}

GraphQL 中没有控制结构,因此无法循环遍历作为列表的值。如果您的 ID 列表是可变长度的,那么您将必须以编程方式构建与上述类似的查询,动态生成变量定义和别名字段。


推荐阅读