Планируемый запуск: | Дата начала: | 04.03.2021 | Планируемое завершение: | Дата завершения: |
{"blocks": [{"key": "41s24", "data": {}, "text": "Решение: https://github.com/gorodskie-bani-ru/nextjs/commit/7977b664c1062c7a1934d25cbc2c199cc2982b38", "type": "unstyled", "depth": 0, "entityRanges": [{"key": 0, "length": 91, "offset": 9}], "inlineStyleRanges": []}, {"key": "1rgff", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "4snni", "data": {}, "text": "P.S. Получилось довольно изящное решение проблемы запроса разных топов ресурсов по любому УРЛу (когда не понятно какой именно тип объекта будет возвращен).", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "dv2su", "data": {}, "text": "С таким подходом получается указать различные наборы полей для разных типов объектов: https://github.com/gorodskie-bani-ru/nextjs/blob/7977b664c1062c7a1934d25cbc2c199cc2982b38/src/gql/resource.graphql#L12-L26", "type": "unstyled", "depth": 0, "entityRanges": [{"key": 1, "length": 122, "offset": 86}], "inlineStyleRanges": []}, {"key": "5fng7", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "dr6vb", "data": {}, "text": "Можно будет в дальнейшем использовать для оптимизации страницы ресурса и здесь https://github.com/freecode-academy/freecode.academy/blob/master/src/pages/Resource/index.tsx", "type": "unstyled", "depth": 0, "entityRanges": [{"key": 2, "length": 93, "offset": 79}], "inlineStyleRanges": []}, {"key": "6td2f", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "5nfpe", "data": {}, "text": "P.P.S.", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "8d6kn", "data": {}, "text": "Здесь еще один момент вскрылся: если писать запрос так: ", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "bl6oi", "data": {}, "text": " ", "type": "atomic", "depth": 0, "entityRanges": [{"key": 3, "length": 1, "offset": 0}], "inlineStyleRanges": []}, {"key": "au6q6", "data": {}, "text": "то есть с фрагментом в корне запроса, то аполло в ответе возвращает только __typename, то есть самого тела объекта нет. При этом с сервера данные приходят корректно.", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "4jaon", "data": {}, "text": "Дело именно в кеш-манагере аполло. Официальная документация говорит прописать possibleTypes (можно и автоматически подгружать). Но в моем случае помогло и просто убрать фрагмент, то есть вот так запрос написать: ", "type": "unstyled", "depth": 0, "entityRanges": [{"key": 4, "length": 13, "offset": 78}, {"key": 5, "length": 10, "offset": 115}], "inlineStyleRanges": []}, {"key": "2jvbe", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "9vfer", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}], "entityMap": {"0": {"data": {"url": "https://github.com/gorodskie-bani-ru/nextjs/commit/7977b664c1062c7a1934d25cbc2c199cc2982b38"}, "type": "LINK", "mutability": "MUTABLE"}, "1": {"data": {"url": "https://github.com/gorodskie-bani-ru/nextjs/blob/7977b664c1062c7a1934d25cbc2c199cc2982b38/src/gql/resource.graphql#L12-L26"}, "type": "LINK", "mutability": "MUTABLE"}, "2": {"data": {"url": "https://github.com/freecode-academy/freecode.academy/blob/master/src/pages/Resource/index.tsx"}, "type": "LINK", "mutability": "MUTABLE"}, "3": {"data": {"lang": "graphql", "content": "query resources(\n $where: bani684_site_contentWhereInput\n $orderBy: [bani684_site_contentOrderByInput!]\n $take: Int\n $skip: Int\n) {\n resources(where: $where, orderBy: $orderBy, take: $take, skip: $skip) {\n ...resource\n }\n}\n\nfragment resource on ResourceUnion {\n ... on Resource {\n id\n pagetitle\n uri\n }\n\n ... on Company {\n ...CompanyFields\n }\n\n ... on City {\n ...city\n }\n}"}, "type": "TOKEN", "mutability": "IMMUTABLE"}, "4": {"data": {"url": "https://www.apollographql.com/docs/react/data/fragments/#defining-possibletypes-manually"}, "type": "LINK", "mutability": "MUTABLE"}, "5": {"data": {"url": "https://www.apollographql.com/docs/react/data/fragments/#generating-possibletypes-automatically"}, "type": "LINK", "mutability": "MUTABLE"}}}