Chuck's Academy

GraphQL con Node

Creación de Mutaciones en GraphQL

Las mutaciones en GraphQL permiten a los clientes modificar datos en el servidor, similar a cómo los métodos POST, PUT y DELETE funcionan en las APIs REST. En este capítulo, aprenderemos a definir y utilizar mutaciones en GraphQL.

Definiendo Mutaciones en el Esquema

En GraphQL, las mutaciones se definen como parte del tipo Mutation. Las mutaciones permiten realizar operaciones de escritura como crear, actualizar o eliminar registros.

Ejemplo de Esquema con Mutaciones

Tomando como ejemplo nuestra API de biblioteca:

graphql

En este esquema, definimos tres mutaciones:

  • createBook: Para crear un nuevo libro.
  • updateBook: Para actualizar un libro existente.
  • deleteBook: Para eliminar un libro.

Implementando Resolvers para Mutaciones

Cada mutación en el esquema debe tener un resolver correspondiente que maneje la lógica de la operación de escritura.

Ejemplo de Implementación de Resolvers

En nuestro archivo resolvers.js, implementaríamos los resolvers para las mutaciones como sigue:

javascript

Realizando Mutaciones desde el Cliente

Una vez definidas las mutaciones y resolvers, los clientes pueden invocar mutaciones para modificar los datos en el servidor. GraphiQL nuevamente facilita este proceso.

Ejemplo de Mutaciones en GraphiQL

  • Mutación para crear un nuevo libro:
graphql
  • Mutación para actualizar un libro existente:
graphql
  • Mutación para eliminar un libro:
graphql

Manejo de Errores

Es importante manejar los errores adecuadamente en los resolvers de mutaciones para proporcionar retroalimentación útil a los clientes. Puedes lanzar errores personalizados usando throw en JavaScript.

Ejemplo de Manejo de Errores

javascript

Resumen

En este capítulo, hemos aprendido a:

  • Definir mutaciones en el esquema de GraphQL.
  • Implementar resolvers para manejar las mutaciones.
  • Realizar mutaciones desde el cliente utilizando GraphiQL.
  • Manejar errores en los resolvers de mutaciones.

Estos conocimientos te permitirán crear APIs GraphQL que no solo puedan leer datos sino también modificarlos de manera segura y eficiente. En el próximo capítulo, exploraremos el uso de resolvers en GraphQL con mayor detalle.

[Placeholder: Diagrama mostrando cómo los resolvers de mutaciones se conectan al esquema y modifican los datos en respuesta a las peticiones del cliente]


Pregúntame lo que sea