【问题标题】:Retrieve requested GraphQL field without waiting for parent resolve using graphql-java-tools使用 graphql-java-tools 检索请求的 GraphQL 字段而不等待父解析
【发布时间】:2018-10-05 15:50:32
【问题描述】:

我希望优化在 graphql-javagraphql-java-tools 上运行的 GraphQL 端点。

我有以下架构:

{
  product(id: String) {
    id
    title
    offer {
      price
    }
  }
}

idtitle来自服务A,价格来自服务B。

现在,我有一个GraphQLQueryResolver,它返回一个CompletableFuture<ProductResponse>,其中ProductResponse 包含idtitle,我还有另一个GraphQLResolver<ProductResponse>,其方法offer(ProductResponse productResponse) 返回一个CompletableFuture<OfferResponse> .

但是,这意味着我必须等待服务 A 返回 ProductResponse 才能开始向服务 B 查询 OfferResponse。这两个服务只需要 ID 作为输入,因此可以并行执行。 有什么方法可以在不调整架构的情况下并行执行两个服务调用?

【问题讨论】:

    标签: graphql graphql-java


    【解决方案1】:

    我认为您可以考虑使用 Apollo federation,它以一种通用的方式解决它,但仍然以一种优雅的方式。

    尝试通过这个 - https://github.com/apollographql/federation-demo

    【讨论】:

    • Apollo 是用 javascript 编写的;这里原海报在标题中提到了graphql-java-tools + 添加了graphql-java 作为标签。
    猜你喜欢
    • 2020-07-29
    • 2019-03-22
    • 1970-01-01
    • 2021-05-02
    • 2021-03-01
    • 2018-06-08
    • 2020-10-07
    • 2019-05-17
    相关资源
    最近更新 更多