使用graphql-java-tools

时间:2018-04-25 08:39:54

标签: graphql graphql-java

我希望优化在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作为输入,因此可以并行执行。 有没有办法在不调整架构的情况下并行执行两个服务调用?

1 个答案:

答案 0 :(得分:-2)

我认为您可以考虑使用Apollo联合身份验证,该联盟以一种通用的方式但仍然以一种优雅的方式解决了该问题。

尝试通过以下操作-https://github.com/apollographql/federation-demo