Glossan

¿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

¿Tienes un producto o servicio relacionado con GraphQL? Anúnciate en este término.

Términos relacionados

Categorías: Backend