#QueDiablosEs GraphQL

#QueDiablosEs GraphQL

GraphQL es una herramienta para la realizar consultas y operaciones, podemos llamarlo un lenguaje de query.

Es un nueva alternativa de API REST.

El objetivo es que se pueda enviar un objeto de tipo consulta a nuestro servidor, especificando no sólo un  verbo (Put,Delete etc.) como sino una petición más completa.

La obtención de datos se hace por queries y las modificaciones por mutadores.

Características

  • La sintaxis usada en la Request es el mismo que el de la Respuesta.
  • Un solo Endpoint puede manejar las peticiones de los clientes.
  • Es código OpenSource
  • No depende del protocolo HTTP

¿Cual es la diferencia con API Rest?

Facebook noto que para las peticiones que necesitaba su App, existían excesivas conexiones al servidor, es decir, cada vista de la App requería una conexión.

Cuando trabajamos con API Rest utilizamos  un GET, POST,PUT o DELETE  cada una con su URL.

Por ejemplo:

GET /API/car       muestra una lista de carros

Si agregamos  /:id podemos definir el auto especifico al cual consultamos.

Sin embargo en GrapHQL tenemos un solo endpoint, normalmente  /graphql y solo se interactúa con el mediante el método Post para indicarle que datos deseamos obtener,crear o modificar.

  • Query: Es una consulta a la App, que nos devuelve la información que deseamos.
  • Mutation:Sirve para modificar, eliminar o interactuar.
  • Subscription.

Para usar GraphQL debemos  definir un schema donde colocamos los tipos y sus propiedades. Cada tipo es una entidad que define propiedades.

type Car {
    id: Long
    marca: String
    modelo: Model
}

type Model{

    id: Long 
    modelo: String
    anio:Long

}

type Query{
    
    car: [Car]!
    modelo:[Moelo]!
    car(id: Long): Car!
}

type Mutation {
   addCar(marca: String, modelo: model): Car
}
schema {
   query: Query
   mutation: Mutation
}

El request siempre se realizará en la misma URL y utilizando el método POST, independientemente de qué dato se esté solicitando o controlando.

Conclusión

GraphQL es una alternativa que puede proporcionarnos ventajas que pueden mejorar el rendimiento de nuestros desarrollos.

Soporta una cantidad grande se lenguajes y clientes. Cuenta un IDE llamado GraphiQL.

Si deseas mas información puede consultar la pagina oficial.

¿Quienes habían escuchado hablar de  GraphQL? ¿Lo han utilizado? ¿Les gustaría un tutorial sobre GraphQL? Déjenos sus comentarios.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.