#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.
[…] Y no olviden de Graph que es base de datos orientado a grafos . […]
[…] no olviden de Graph que es base de datos orientado a grafos […]