Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

144
Vistas
Resolver dos campos de esquema GraphQL usando un punto final

Hay una situación en la que hay dos tipos posibles para completar la propiedad de data . He creado un tipo de union para eso ( ComponentItem ) para determinar qué campo debe devolverse. El primer esquema ( ComponentItem1 ) debe ser simplemente una lista codificada pero el segundo ( ComponentItem2 ) es más dinámico donde obtiene un searchTerm de búsqueda de la consulta y en realidad llama a un punto final para completar la list y también tiene la propiedad hasNextPage .

Aquí están los esquemas que hice:

 type Component { id title data: ComponentItem }
 union ComponentItem = ComponentItem1 | ComponentItem2
 type ComponentItem1 { list: [List!]! } type ComponentItem2 { hasNextPage: Boolean; list: [List!]! }

En el resolver, estoy resolviendo el tipo de unión para generar el __typename adecuado:

 const resolver: { ComponentItem: { __resolveType(object) { if(object.searchTerm){ return "ComponentItem2" } return "ComponentItem1" }, }, }

Lo que estoy haciendo actualmente es resolver la list y hasNextPage individualmente, pero en este escenario envío la solicitud al mismo punto final dos veces.

 const resolver = { ...resolver, ComponentItem2: { list: async (root, __, context) => { const result = await fetch('search-endpoint') return result?.items || [] } hasNextPage: async (root, __, context) => { const result = await fetch('search-endpoint') return result?.hasNextPage || false } } }

Mi pregunta es cómo es posible compartir ese resultado en otra resolución de campo (aparte de usar "contexto"). O si hay alguna forma mejor de manejar esta situación, házmelo saber.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda