处理多数据查询时的 GraphQL 最佳实践

GraphQL best practice when processing queries with multiple data

我是 GraphQL 的新手,当客户端需要对多个输入重复查询时,我对最佳实践感到困惑。例如,假设我有一个 API 可以告诉我哪个城市最接近 GPS 坐标。 (如果有错误,我们深表歉意,但您明白了)

type Query {
  locate(gps: GPS!): City!
}

现在假设我的客户有几百个 GPS 坐标要定位。发出数百个请求显然是非常低效的。我应该做一个可以定位一堆坐标的查询吗?或者以其他方式批处理它们?

type Query {
  locate(gps: GPS!): City!
  locateMultiple(gpss: [GPS]!): [City]!
}

这似乎与 GraphQL 的想法背道而驰,但我还是新手。此外,对于上下文,我不打算使用 Apollo(Haskell 后端和 iOS 前端,我正在查看 SwiftGraphQL),但我可能会创建一个简单的批处理系统(一组请求到一系列响应)如果需要的话。

你会怎么做?

这不是 anti-pattern 接收或发送输入列表 to/from GraphQL API,我想知道这有什么对立的。我认为你在这里有一个误解。

当客户端和 Web 服务共享信息时,这是 super-common,我看不出有任何理由有如此巨大的约束。

这比通过对象发送请求更有效,而且比编写批处理系统更简单。