Street!
house: String!
flat: Int!
}
type Street {
id: ID!
name: String!
}
Допустим, я получаю поле с Address, и далее мне нужно получить его поле street. Для этого хочу написать отдельный резолвер для этого поля. В БД я имею ссылку на эту сущность в виде streetId. И, получается так, что для того, чтобы передать его в этот резолвер (аргументом parent), я должен добавить поле streetId: ID! в схему? Других вариантов нет?
Вообще для данных, которые не надо выводить в схему можно использовать контекст. Но тоже странно получается. Вы же как-то получили streetId, почему так-же нельзя получить и адрес?
не знаю как на тс, обычно первое поле резолвера это объект который пришел из резолвера выше по иерархии. т.е. если ты вернешь в резолвере { street: Street! house: String! flat: Int! streetId: ... } а в схеме streetId нет - то streedId проигнорится и не выйдет наружу далее в следующем по иерархии резолвере street первым аргументом у тебя будет весь объект адреса, и ты из него берешь streetId и ищешь нужные данные. без тс так можно спускать вниз по цепочке нужные тебе данные, как с тс не пробовал
Не то, чтобы это прям type-safe, но вариант, спасибо. Не знал, что в резолвер придёт весь объект.
Обсуждают сегодня