子查询,因为缺乏更好的术语,当使用用 GraphQL 编写的 API 时



我对 GraphQL 比较陌生,所以请耐心等待......

也就是说,我正在 node 中编写一个应用程序.js从两个不同的系统推送/拉取数据,其中一个系统有一个用 GraphQL 编写的 API。

对于图形系统,我为我定义了以下类型:

Time {
TimeId: Int
TaskId: Int
ProjectId: Int
Project: [Project]
TimeInSeconds: Int
Timestamp: Date
}

Task {
TaskId: Int
TaskName: String
TaskDescription: String
}

其中Project是另一种类型,其定义并不重要,只是它作为字段包含在类型定义中......

我想知道的是,是否有一种方法可以为Time编写查询,以便我可以在结果中包含Task类型的值,就像定义中包含Project类型的值一样?

我正在使用其他人的 API,并且无法定义自己的自定义类型。我可以编写自己的有限查询,但我不知道这些限制是由编写 API 的开发人员设置的,还是我对 GraphQL 的有限能力设置的。

我的怀疑是我不能,我将不得不分别查询两者并在事后将它们组合在一起,但我想在这里检查以防万一。

不幸的是,除非Time类型公开某种字段来获取相关Task,否则您将无法在同一请求中查询它。您可以在单个 GraphQL 请求中包含多个查询;但是,它们是并行运行的,这意味着您将无法将一个查询返回的TaskId值用作另一个查询中使用的变量。

这种问题最好通过修改架构来解决,但如果这不是一个选项,那么不幸的是,唯一的其他选择是按顺序发出每个请求,然后在客户端组合结果。

最新更新