Есть ли способ сортировки / разбиения на страницы значения из внешнего объекта с помощью Apollo Federated GraphQL?
Можно ли пометить поле во входных данных запроса как требующее расширения поля другой службой?
Я использую федерацию-демо, чтобы проиллюстрировать свой вопрос, но немного проще. Имея только службу учетной записи и службу отзывов и добавив
karma
в поле Пользователя, можно ли фильтровать отзывы по карме Пользователя.
Сервис учетной записи, добавляющий пользователю карму int:
extend type Query {
me: User
}
type User @key(fields: "id") {
id: ID!
name: String
username: String
karma: Int!
}
Сервис отзывов, добавление отзывов Запрос:
extend type Query {
reviews(minKarma: Int): [Review!]!
}
type Review @key(fields: "id") {
id: ID!
body: String
author: User @provides(fields: "username")
product: Product
}
extend type User @key(fields: "id") {
id: ID! @external
username: String @external
karma: Int! @external
reviews: [Review]
}
extend type Product @key(fields: "upc") {
upc: String! @external
reviews: [Review]
}
В моем преобразователе для Query.reviews я хочу отфильтровать любой обзор, в котором review.author.karma меньше указанного minKarma.
Как мне сообщить шлюзу, что, когда minKarma указывается во входных данных Query, я хочу, чтобы сначала запрашивалась служба Account, а представление пользователей передавалось в службу Reviews, при этом карма каждого пользователя, прикрепленного к обзору, как автор, так что я могу сделать фильтр?
Возвращаясь к вопросу в верхней части этого сообщения, могу ли я отметить
minKarma
поле как требующее
User.karma
?