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.pemNOTA: 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 -yAhora 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 código usando el comando scp
- Clonar el código de la aplicación de Github, Gitlab o Bitbucket
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 GraphQLEl 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 PostalClonar 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 gitVerifique 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.nodejsInicio 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.jsEjecució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 yEl 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 pm2Inicie la aplicación graphQL usando pm2.
[correo electrónico protegido]: ~ $ pm2 iniciar la aplicación.js --name “graphQL” --watchLa 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]: ~ $ nodoAhora 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.