Saltar al contenido principal

GraphQL

GraphQL es un lenguaje de consulta para APIs desarrollado por Facebook que permite obtener exactamente los datos que necesita el cliente de manera eficiente. A diferencia de REST, donde cada endpoint devuelve un conjunto fijo de datos, GraphQL permite consultas flexibles y precisas sobre los recursos del servidor.

Características

  • Consultas personalizadas: El cliente puede especificar exactamente qué campos necesita, evitando sobrecarga de datos.
  • Un solo endpoint: Todas las consultas y mutaciones se envían a un único endpoint, a diferencia de REST donde cada recurso tiene su propia URL.
  • Tipado fuerte: GraphQL utiliza un esquema definido con tipos para cada dato, lo que facilita la validación y documentación automática.
  • Mutaciones y suscripciones:
    • Mutaciones: Permiten crear, actualizar o eliminar datos.
    • Suscripciones: Permiten recibir datos en tiempo real cuando cambian ciertos recursos (útil para notificaciones y eventos).
  • Documentación automática: El esquema tipado permite que herramientas como GraphiQL o Apollo Studio generen documentación interactiva de la API.

Ventajas de GraphQL frente a REST

  • Menor sobrecarga de datos (overfetching): el cliente recibe solo lo que necesita.
  • Menos endpoints: un único endpoint para todas las consultas.
  • Facilidad de evolución: se pueden añadir nuevos campos sin afectar a clientes existentes.
  • Es agnóstico al backend: puede conectarse a una base de datos, una API REST o incluso a otro GraphQL.
  • Documentación automática gracias al esquema tipado.