Ввод данных мутации разделен между двумя объединенными службами Apollo GraphQL

#graphql #apollo-federation

#GraphQL #Apollo-федерация

Вопрос:

У меня есть мутация в моем графике, которая использует два источника данных. Мы переносим один из источников данных в федеративную службу. Этот источник данных в федеративной службе использует часть входных данных вызываемой мутации. Исходная служба также использует часть входных данных. Например:

 mutation($verifyUserInput: VerifyUserInput!) {
  verifyUser(input: $verifyUserInput) {
    user {
      specialId
    }
    otherServiceField
  }
}
 

Мне нужно передать часть VerifyUserInput другому сервису, который не является PK для объекта. Я не могу найти входные данные в __resolveReference функции reference (очевидно, поскольку ссылка передает только имя типа и PK), context , или info аргументы. Доступны ли исходные входные данные для мутации в федеративной службе? Если да, то как я могу его получить?

Ответ №1:

В итоге я искал точный ввод, который мне был нужен для каждого запроса в шлюзе, и добавлял это значение в заголовок, чтобы оно могло распространяться по службам. Это определенно похоже на взлом. Я предполагаю, что в Федерации Аполлона есть более правильный способ сделать это.