GraphQL - Componentes de la aplicación
Este capítulo analiza los diferentes componentes GraphQL y la forma en que se comunican entre sí. Todos los componentes de la aplicación se pueden distinguir de la siguiente manera:
- Componentes del lado del servidor
- Componentes del lado del cliente
Componentes del lado del servidor
El servidor GraphQL forma el componente central en el lado del servidor y permite analizar las consultas provenientes de las aplicaciones cliente GraphQL. Apollo Server es la implementación más utilizada de la especificación GraphQL. Otros componentes de programación del servidor incluyen los siguientes:
No Señor. | Conceptos básicos y descripción del servidor |
---|---|
1 | Schema Un esquema GraphQL está en el centro de cualquier implementación de servidor GraphQL y describe la funcionalidad disponible para los clientes que se conectan a él. |
2 | Query Una consulta GraphQL es la solicitud de la aplicación cliente para recuperar datos de la base de datos o API heredadas. |
3 | Resolver Los resolutores proporcionan las instrucciones para convertir una operación GraphQL en datos. Resuelven la consulta a datos definiendo funciones de resolución. |
Componentes del lado del cliente
A continuación se muestran los componentes del lado del cliente:
No Señor. | Herramienta y descripción |
---|---|
1 | GraphiQL Interfaz basada en navegador para editar y probar consultas y mutaciones GraphQL. |
2 | ApolloClient La mejor herramienta para crear aplicaciones cliente GraphQL. Se integra bien con todo el front-end de JavaScript. |
El siguiente diagrama muestra un Client-Server architecture. El servidor web está construido sobre NodeJs y Express framework. Se realiza una solicitud al servidor Apollo GraphQL mediante la aplicación ReactJS (construida con la biblioteca Apollo Client) o la aplicación del navegador GraphiQL. La consulta se analizará y validará con un esquema definido en el servidor. Si el esquema de solicitud pasa la validación, se ejecutarán las funciones de resolución asociadas. El resolutor contendrá código para recuperar datos de una API o una base de datos.