Expertos en Drupal

Conectamos GraphQL con Drupal 8

GraphQL habla con Drupal en HTTP y las salidas están más estructuradas que nunca!

Jaume Codina
Jaume Codina

Mayo 11, 2020

Hoy en día, las grandes experiencias de los clientes comienzan con un gran contenido. Contenido que se hace disponible en todas partes. Con la iniciativa API-first de Drupal 8, el contenido que es administrado por Drupal puede ser fácilmente utilizado por otros sistemas a través de HTTP. REST (Representational State Transfer) proporciona un estándar de diseño para las API. Sin embargo, con las aplicaciones cliente cada vez más complejas y desafiantes, los desarrolladores necesitan una solución más moderna y efectiva.

GraphQL nació de la demanda de una interacción cliente-servidor más flexible y potente. Es un lenguaje de consulta sofisticado y una máquina de ejecución. En 2012 Facebook creó la especificación para ello, que describe sus capacidades y los requisitos de los modelos de datos para aplicaciones sin cabeza.

¿Qué es GraphQL?

GraphQL es un estándar adaptable para las APIs y proporciona un tiempo de ejecución para cumplir con esas consultas. GraphQL da una completa y razonable detalles de la información en su API. Se desarrolla con una ideología de "Pide lo que necesitas y consigue exactamente eso". Permite al cliente buscar la respuesta exacta que necesita en la API, nada más y nada menos.

Ventajas de GraphQL

Pocas de las muchas ventajas de usar GraphQL para Drupal -

Desarrollo más rápido del frontend

Enfatizar rápidamente en las aplicaciones sin esperar a los nuevos puntos finales del backend. Mejorar la obtención de datos y el mantenimiento de los códigos obteniendo los datos en la forma que usted necesita.

Pida lo que necesite y obtenga exactamente eso

Proporciona la respuesta exacta que el cliente pidió. Siempre devuelve un resultado predecible. Las aplicaciones que usan GraphQL también son estables porque la aplicación controla los datos que obtiene, no el servidor.

Utiliza los datos existentes

GraphQL se puede utilizar con cualquier infraestructura existente, por ejemplo, REST, SOAP o una base de datos existente, o cualquier otra cosa. Le permite consultar todos los datos en una sola solicitud y le proporciona una respuesta limpia y predecible.

Menos bytes y viajes de ida y vuelta

Usando GraphQL todos los datos requeridos pueden ser obtenidos usando una sola consulta. Esto hace que la aplicación sea más rápida.

REST vs JSON: API vs GraphQL

Si comparamos estos tres de acuerdo a la eficiencia de la solicitud, JSON:API y GraphQL son excelentes. Porque en una sola solicitud JSON:API y GraphQl pueden servir todas las respuestas requeridas. En el caso de JSON:API, a veces tenemos que adaptar la respuesta, pero cuando se trata de GraphQL, sólo sirve lo que necesitamos. REST es más lento en comparación con estos, porque se necesitan múltiples solicitudes para servir a las necesidades comunes.

En términos de simplicidad operacional e implementación, REST es el más fácil, ha estado ahí desde hace bastante tiempo. JSON:API también funciona fuera de la caja con CDN y proxies inversos. Para GraphQL se necesita una infraestructura extra y se necesitan librerías de cliente para implementarlo.

Es más fácil usar la caché web en REST y JSON:API en comparación con GraphQL. En GraphQL, sólo hay un endpoint (la mayoría de las veces un endpoint HTTP POST) donde se envían todas las consultas. Dado que cada consulta puede ser diferente, es más difícil utilizar este tipo de caché.

La especificación GraphQL de Drupal soporta operaciones bulk/batch automáticamente para las mutaciones que ya ha implementado, mientras que la especificación JSON:API no lo hace. La capacidad de realizar operaciones de escritura por lotes puede ser importante.

Instalando GraphQL para Drupal 8

El módulo GraphQL de Drupal soporta todas las especificaciones de GraphQL y puede ser utilizado para construir y exponer los esquemas de GraphQL. La última versión alfa del módulo Drupal 8 en la versión 8.x-4 ofrece la posibilidad de que los módulos de Drupal amplíen el esquema con un plugin.

Aquí es donde puede instalar el módulo GraphQL de Drupal desde - https://www.drupal.org/project/graphql
Puedes instalarlo usando el comando compositor.

composer requiere 'drupal/graphql:^3.0'.

Te proporcionará dos módulos GraphQL Core y GraphQL. Necesitas habilitar ambos módulos. Puedes habilitarlo usando drush por ejemplo.

drush en graphql
drush en graphql_core

Comparte este artículo

Artículos Relacionados