Fragments de GraphQL, construidos en vivo

Fragments de GraphQL

Fragments de GraphQL: con nombre, inline y condiciones de tipo | We.Inc

Crea fragments de GraphQL en un generador de consultas en vivo: fragments con nombre para reutilizar, fragments inline para uniones e interfaces, condiciones de tipo, __typename y variables.

Un fragment de GraphQL es un conjunto de campos con nombre y reutilizable para un tipo, escrito como fragment Name on Type e incluido en una consulta con ...Name. Un fragment inline, escrito ... on Type, no tiene nombre y selecciona campos solo cuando el resultado es ese tipo concreto, que es como se consultan las uniones y las interfaces.

Formas de los fragments

Marca los campos que quieres en el generador y escribirá la consulta por ti, una vez con un fragment con nombre y otra con los campos escritos directamente, para que veas que piden los mismos datos. Activa la opción de resultados de búsqueda para añadir fragments inline sobre una unión.

Preguntas frecuentes

¿Los fragments hacen más pequeñas las respuestas?

No. Un fragment es una ayuda para escribir la consulta. El servidor lo expande, y la respuesta es exactamente igual que si hubieras escrito los campos a mano. Si dos spreads seleccionan el mismo campo, aparece una sola vez.

¿Cuándo tengo que usar un fragment inline?

Cuando un campo devuelve una unión o una interfaz y necesitas campos que solo tienen algunos de los tipos miembro. graphql.org lo muestra con un hero que puede ser un Droid con primaryFunction o un Human con height.

¿Se puede usar un fragment en otro tipo?

Solo donde pueda aplicarse. Un fragment sobre una interfaz se puede usar con spread dentro de cualquier tipo de objeto que la implemente, pero un fragment sobre User usado dentro de una selección de Post no pasa la validación.

¿Dónde van los fragments en el documento?

En el nivel superior del documento, junto a las operaciones, en cualquier orden. Todo fragment definido debe usarse, o el servidor rechaza el documento por no ser válido.

Fragments con nombre para reutilizar

Fragments inline y condiciones de tipo

Esquema que usa el generador

Una unión para los resultados de búsqueda

SearchResult puede ser un User o una Photo, así que una selección sobre él necesita fragments inline para llegar a los campos de cualquiera de los dos miembros.

Cómo leer una respuesta de unión

Lo que devuelve la búsqueda

Cada elemento lleva solo los campos de su propia rama, más __typename.

Ramificar según __typename

El nombre del tipo es la forma segura de distinguir los miembros; comprobar si existe un campo puede fallar cuando un tipo lo gane más adelante.

Generador de consultas con fragments

Campos de User que seleccionar

Usar un fragment con nombre (UserCard)

Añadir resultados de búsqueda (unión con fragments inline)

Consulta

Copiar consulta

{n} campo(s) seleccionado(s), {v} línea(s) de consulta

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio