¿Es una buena práctica usar variables estáticas en un esquema de Graphql en parámetros de esquema repetidos? como se muestra en el siguiente ejemplo
const TeaserGroupParams = `{ id: String workflowId: String headline: String description: String groupLayout: TeaserGroupLayout elementLayout: TeaserGroupElementLayout teaserElements: [TeaserElement] teaserDynamic: TeaserDynamic teaserDynamicConfigId: Int toplistSorting: String bookmarked: Boolean workingCopy: Workflow workflows: [Workflow] assignmentCount: Int assignedElements: [AssignedUnion] } `; export const TeaserGroupSchema = ` union AssignedUnion = Article | Page type TeaserGroup ${TeaserGroupParams} `; export const TeaserGroupWorkflowSchema = ` type TeaserGroupWorkflow ${TeaserGroupParams} `;¿Puedo tener también un enfoque similar en el lado del cliente, para evitar la duplicación una vez más?
query GetTeaserGroup ($id: String!) { teaserGroup(id: $id) { asset { ... on TeaserGroup { id headline...
... on TeaserGroupWorkflow { id headline description elementLayout...
Tomado de https://www.apollographql.com/docs/react/caching/cache-configuration
import { gql } from '@apollo/client'; export const CORE_COMMENT_FIELDS = gql` fragment CoreCommentFields on Comment { id postedBy { username displayName } createdAt content } `;y .. :
import { gql } from '@apollo/client'; import { CORE_COMMENT_FIELDS } from './fragments'; export const GET_POST_DETAILS = gql` ${CORE_COMMENT_FIELDS} query CommentsForPost($postId: ID!) { post(postId: $postId) { title body author comments { ...CoreCommentFields } } } `;Fue una buena práctica, con Fragments todo funciona según lo previsto. Gracias Tomasz