Получить запрошенное поле GraphQL, не дожидаясь разрешения родителя, используя graphql-java-tools - PullRequest
0 голосов
/ 25 апреля 2018

Я ищу для оптимизации конечной точки GraphQL, работающей на graphql-java и graphql-java-tools.

У меня есть следующая схема:

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

id и title поступают от службы A, цена поступает от службы B.

Прямо сейчас у меня есть GraphQLQueryResolver, который возвращает CompletableFuture<ProductResponse>, где ProductResponse содержит id и title, и у меня есть еще один GraphQLResolver<ProductResponse> с методом offer(ProductResponse productResponse), который возвращает CompletableFuture<OfferResponse> .

Однако это означает, что мне нужно ждать, пока служба A вернет ProductResponse, чтобы начать запрашивать службу B для OfferResponse. Обе службы нуждаются только в идентификаторе в качестве входных данных и, следовательно, могут выполняться параллельно. Есть ли способ выполнить оба вызова службы параллельно, не меняя схему?

...