Добавить unionType

Завершена
Планируемый запуск: Дата начала: 04.03.2021Планируемое завершение: Дата завершения:

Описание задачи


P.S. Получилось довольно изящное решение проблемы запроса разных топов ресурсов по любому УРЛу (когда не понятно какой именно тип объекта будет возвращен).
С таким подходом получается указать различные наборы полей для разных типов объектов: https://github.com/gorodskie-bani-ru/nextjs/blob/7977b664c1062c7a1934d25cbc2c199cc2982b38/src/gql/resource.graphql#L12-L26

Можно будет в дальнейшем использовать для оптимизации страницы ресурса и здесь https://github.com/freecode-academy/freecode.academy/blob/master/src/pages/Resource/index.tsx

P.P.S.
Здесь еще один момент вскрылся: если писать запрос так:
query resources( $where: bani684_site_contentWhereInput $orderBy: [bani684_site_contentOrderByInput!] $take: Int $skip: Int ) { resources(where: $where, orderBy: $orderBy, take: $take, skip: $skip) { ...resource } } fragment resource on ResourceUnion { ... on Resource { id pagetitle uri } ... on Company { ...CompanyFields } ... on City { ...city } }
то есть с фрагментом в корне запроса, то аполло в ответе возвращает только __typename, то есть самого тела объекта нет. При этом с сервера данные приходят корректно.
Дело именно в кеш-манагере аполло. Официальная документация говорит прописать possibleTypes (можно и автоматически подгружать). Но в моем случае помогло и просто убрать фрагмент, то есть вот так запрос написать:


ПроектЗадачаСтатусДата постановкиНачалоКонецКто создал
Городские и общественные баниДобавить unionTypeЗавершена04.03.2021 20:14:2904.03.2021 20:45:0604.03.2021 22:05:13

Добавить комментарий