NodeJS

Cómo implementar la aplicación GraphQL usando Node.js en el servidor EC2

Cómo implementar la aplicación GraphQL usando Node.js en el servidor EC2
GraphQL, también conocido como Graph Query Language, establecido y mantenido por Facebook, es un lenguaje de consulta utilizado para API. Está construido con los lenguajes de programación JavaScript, Scala, Java y Ruby. Su propósito básico es solicitar los datos de servidor a cliente.GraphQL agrega los datos de diferentes fuentes. La agregación es el proceso de filtrar datos en el lado del servidor y luego enviar los datos filtrados al cliente. Sin agregación, enviamos todos los datos al cliente y luego los datos se filtran en el lado del cliente. Esto hace que el sistema sea lento y podemos mejorar la eficiencia de una API utilizando GraphQL. Aquí aprenderemos a implementar una aplicación GraphQL simple usando node.js en un servidor EC2.

Instalación de paquetes requeridos

El primer paso para implementar su aplicación graphQL es preparar su servidor instalando los paquetes requeridos. Inicie sesión en el servidor mediante SSH.

[correo electrónico protegido]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

NOTA: Asegúrese de que el grupo de seguridad de la instancia esté configurado para permitir la conexión desde el puerto 22 y que el archivo de clave privada tenga permiso 400.

Actualizar repositorios de Ubuntu.

[correo electrónico protegido]: ~ $ sudo apt-get update -y

Ahora instale el nodo.js y npm en su servidor ubuntu.

[correo electrónico protegido]: ~ $ sudo apt-get install nodejs -y
[correo electrónico protegido]: ~ $ sudo apt-get install npm -y

Verifique la instalación comprobando la versión del nodo.js y npm.

[correo electrónico protegido]: ~ $ node -v
[correo electrónico protegido]: ~ $ npm -v

Mover la aplicación GraphQL al servidor EC2

La instancia EC2 está lista para implementar aplicaciones GraphQL en el nodo.js. Ahora trasladaremos nuestro código a la instancia EC2. A continuación se enumeran dos formas comunes de copiar el código en el servidor y se discutirán aquí.

Copiar aplicación usando el comando scp

Para copiar su aplicación al servidor EC2 usando el comando scp, en primer lugar, elimine el directorio 'node_modules' de su aplicación graphQL. Este directorio tiene todos los paquetes npm necesarios para ejecutar la aplicación. Instalaremos estos paquetes más tarde antes de iniciar la aplicación graphQL. Ahora comprima el directorio del proyecto en un archivo zip. Después de crear el archivo zip, trasladaremos el archivo zip del proyecto al servidor. Linux y Windows tienen diferentes métodos para crear un archivo zip.

Ventanas

En Windows, haga clic con el botón derecho en el directorio raíz de la aplicación y vaya a la opción 'enviar a'. Se abrirá un submenú. Haga clic en la 'carpeta comprimida (zip)' para crear un archivo zip de la aplicación graphQL.

Linux o Mac

En Linux o Mac OS, usaremos el comando 'zip' para crear un archivo zip del proyecto.

[correo electrónico protegido]: ~ $ zip -r graphQL.zip GraphQL

El comando anterior generará el graphQL.archivo zip del directorio graphQL.

Subir la aplicación al servidor

Ahora tenemos un archivo zip de nuestra aplicación y podemos subir el archivo zip al servidor usando el comando scp.

[correo electrónico protegido]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /

El comando anterior moverá el archivo zip del proyecto al directorio de inicio del servidor remoto a través de la conexión ssh. Ahora en el servidor remoto, descomprima el archivo zip del proyecto.

[correo electrónico protegido]: ~ $ unzip graphQL.Código Postal

Clonar aplicación desde Github, Bitbucket o Gitlab

El segundo método para copiar el código de la aplicación al servidor es usar git. Instale git desde la línea de comandos en el servidor EC2.

[correo electrónico protegido]: ~ $ sudo apt install git

Verifique la versión de git para verificar la instalación.

[correo electrónico protegido]: ~ $ git --version

Si no da la versión de git, entonces git no está instalado. Ahora clone la aplicación desde github, gitlab o bitbucket. Aquí clonaremos el código de la aplicación del github.

[correo electrónico protegido]: ~ $ git clone ttps: // github.com / contentful / the-example-app.nodejs

Inicio de la aplicación GraphQL

Ahora tenemos nuestra aplicación graphQL en el servidor remoto. Vaya al directorio raíz de la aplicación graphQL e instale los paquetes npm necesarios para ejecutar la aplicación graphQL.

[correo electrónico protegido]: ~ $ cd graphQL
[correo electrónico protegido]: ~ $ sudo npm install

Este comando analizará el paquete.json en el proyecto e instale todos los paquetes npm necesarios. Después de instalar los paquetes requeridos, ahora iniciaremos la aplicación graphQL.

[correo electrónico protegido]: ~ $ aplicación de nodo.js

Ejecución de la aplicación como demonio

Cuando ejecutamos la aplicación usando el método estándar como se describió anteriormente, se ejecuta en primer plano y la aplicación se detiene cuando cierra la ventana de la terminal. Podemos ejecutar la aplicación como un proceso en segundo plano agregando el signo ampersand (&) al comando.

[correo electrónico protegido]: ~ $ aplicación de nodo.js y

El problema con este método es que cuando modificamos el código de nuestra aplicación, los cambios aplicados no se reflejarán automáticamente. Tendremos que reiniciar la aplicación cada vez que modifiquemos el código para aplicar los cambios. Para ejecutar la aplicación en segundo plano y aplicar los cambios automáticamente, usaremos un paquete npm llamado pm2. Instale pm2 en el servidor.

[correo electrónico protegido]: ~ $ sudo npm install -g pm2

Inicie la aplicación graphQL usando pm2.

[correo electrónico protegido]: ~ $ pm2 iniciar la aplicación.js --name “graphQL” --watch

La bandera '-name' nombrará el proceso en segundo plano, y podemos iniciar y detener la aplicación usando el nombre. La bandera '-watch' seguirá verificando el código de la aplicación para aplicar los cambios inmediatamente. Puede obtener más información sobre pm2 visitando el siguiente enlace

https: // pm2.llaves metricas.io /

Consultando la API GraphQL desde el navegador

Podemos configurar nuestra aplicación GraphQL para realizar consultas GraphQL desde el navegador de forma manual. Para esto, tenemos que crear un punto final HTTP separado en el que montaremos el servidor API graphQL. Y este extremo HTTP se utilizará para realizar consultas manuales. A continuación se muestra el código para crear el punto final del servidor de la API de GraphQL.

const express = require ('express');
const graphqlHTTP = require ('express-graphql');
const buildSchema = require ('graphql');
const graphQLSchema = buildSchema ('
type Query
mensaje: String
'
);
const func =
mensaje: () =>

return 'estás usando el servidor api graphql';

;
servidor constante = express ();
servidor.use ('/ graphql', graphqlHTTP (
esquema: graphQLSchema,
rootValue: func,
graphiql: verdadero
));
servidor.escuchar (3000);

Ahora, después de ejecutar el servidor, podemos acceder al servidor api graphQL en la siguiente ruta.

http: // localhost: 3000 / graphql

Consulta de la API GraphQL mediante CLI

En la sección anterior, hicimos consultas graphQL desde el navegador usando graphiql. Ahora vamos a hacer consultas graphQL usando la interfaz de línea de comandos en ubuntu. Desde la línea de comando, para realizar una solicitud HTTP POST, usaremos el módulo curl.

[correo electrónico protegido]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql

Consultar la API GraphQL mediante programación

Para hacer una consulta graphQL programáticamente, usaremos el módulo 'node-fetch' en node.js. Nodo abierto.js en la terminal.

[correo electrónico protegido]: ~ $ nodo

Ahora realice la solicitud HTTP POST al servidor utilizando el módulo 'node-fetch'.

GraphQL es un lenguaje de consulta eficiente y puede disminuir el tiempo de respuesta de una consulta realizada en la base de datos. Las llamadas de API estándar para obtener datos de la base de datos involucran muchos datos inútiles en la respuesta y, por lo tanto, el tiempo de respuesta aumenta, lo que disminuye la eficiencia. La consulta realizada a las bases de datos utilizando GraphQL devuelve solo los datos útiles y, por lo tanto, disminuye el tiempo de respuesta. En este artículo, hemos implementado nuestra aplicación graphQL en una instancia EC2.

El botón central del mouse no funciona en Windows 10
La botón central del ratón le ayuda a desplazarse por páginas web largas y pantallas con una gran cantidad de datos. Si eso se detiene, bueno, termina...
Cómo cambiar los botones izquierdo y derecho del mouse en una PC con Windows 10
Es una norma que todos los dispositivos de mouse de computadora estén diseñados ergonómicamente para usuarios diestros. Pero hay dispositivos de mouse...
Emule los clics del mouse colocando el mouse con Clickless Mouse en Windows 10
El uso excesivo de un mouse o teclado en una postura incorrecta puede provocar muchos problemas de salud, como tensión, síndrome del túnel carpiano y ...