¿Qué es GraphQL?
También llamado: Graph Query Language
Definición
GraphQL es un lenguaje de consulta para APIs en el que el cliente pide exactamente los datos que necesita, con la forma que necesita, en una sola petición a una única URL.
En una API REST, para mostrar un artículo con su autor y sus comentarios puede que haya que hacer tres peticiones y recibir campos que no se usan. Con GraphQL se describe en una consulta lo que se quiere y el servidor devuelve justo eso.
Ejemplo
Consulta:
query {
termino(slug: "dkim") {
titulo
resumen
relacionados {
titulo
url
}
}
}
Respuesta en JSON, con la misma forma que la consulta:
{
"data": {
"termino": {
"titulo": "DKIM",
"resumen": "DKIM es un método para firmar digitalmente los correos...",
"relacionados": [
{ "titulo": "SPF", "url": "/termino/spf/" },
{ "titulo": "DMARC", "url": "/termino/dmarc/" }
]
}
}
}
Todo se envía con POST a una única dirección, como https://api.example.com/graphql.
REST o GraphQL
| REST | GraphQL | |
|---|---|---|
| URLs | Una por recurso | Una sola |
| Datos devueltos | Los que decide el servidor | Los que pide el cliente |
| Caché HTTP | Sencilla | Más complicada |
| Esquema y tipos | Opcional (OpenAPI) | Obligatorio |
| Curva de aprendizaje | Baja | Media |
GraphQL brilla cuando hay muchos clientes distintos (web, móvil) con necesidades diferentes; para APIs sencillas, REST suele bastar.
Errores habituales
- No limitar la profundidad ni el coste de las consultas: un cliente puede pedir relaciones anidadas sin fin y tumbar el servidor.
¿Tienes un producto o servicio relacionado con GraphQL? Anúnciate en este término.
Términos relacionados
- APIUna API es un conjunto de reglas que permite a un programa pedir datos...
- API RESTUna API REST es una API web que organiza los datos en recursos, cada...
- JSONJSON es un formato de texto para intercambiar datos estructurados, fácil de leer para...
- HTTPHTTP es el protocolo con el que los navegadores piden páginas, imágenes y datos...
Categorías: Backend