DEV Community

Cover image for Conociendo GraphQL
GabrielOmar
GabrielOmar

Posted on

Conociendo GraphQL

En los últimos años se ha hecho popular una nueva forma de consumir información de un backend, sí, hablamos de GraphQl. Pero, ¿qué es exactamente?

GraphQl es un lenguaje de consultas que permite manipular información de forma rápida y mucho más precisa que una Rest API convencional.

Tiene 4 terminologías principales los cuales son: Query, Mutation, Resolver y Schema. A continuación, explicaremos más a detalle cada una de estas.

Query

Para entender que significa Query en GraphQL podemos referirnos a un CRUD hecho con las ya conocidas rest API. El término Query hace referencia a la letra R el cual significa READ. Entonces, su uso principal es el de leer información.

query {
   obtenerPersonas {
      nombre,
      edad,
      ocupación,
   }
}
Enter fullscreen mode Exit fullscreen mode

Mutation

Los Mutation hacen referencia al resto de letras de un CRUD, es decir CREATE, UPDATE and DELETE. Son independientes del lenguaje, es así que da igual si el backend esta hecho en Node o en Java.

mutation borrarPersona($id: ID) {
       borrarPersona($id: ID)
}
Enter fullscreen mode Exit fullscreen mode

El resultado que observaríamos, considerando este ejemplo y considerando que la operación fue exitosa, sería el siguiente:

{
   "data": {
     "borrarPersona": "Se eliminó el registro correctamente"
  }    
}
Enter fullscreen mode Exit fullscreen mode

Schema

Describe el tipo de objeto, queries y datos de la aplicación. Utilizan un typing en el que defines si el campo es un String, Int o algún otro tipo de dato.

type Cliente {
   id: ID,
   nombre: String,
   apellido: String,
   email: Email,
}

type Email: {
   email: String,
}
Enter fullscreen mode Exit fullscreen mode

Resolvers

Son funciones responsables de retornar los valores existentes en el Schema. Básicamente se encargan de consultar la base de datos y traer el resultado. Estos nombres deben ser iguales a los que se definan en el Schema. A continuación, un ejemplo de un resolver básico.

obtenerClientes: async () => {
    const clientes = await Clientes.find({});
    return clientes;
}
Enter fullscreen mode Exit fullscreen mode

Esta ha sido una breve introducción a GraphQL, con esto podríamos empezar a experimentar y crear nuestras primeras consultas. Todo depende de cuánto practiquemos :) .

Top comments (0)