Instalando Pacotes Requeridos
A primeira etapa para implantar seu aplicativo GraphQL é preparar seu servidor instalando os pacotes necessários. Faça login no servidor usando SSH.
[email protegido]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pemNOTA: Certifique-se de que o grupo de segurança da instância está configurado para permitir a conexão da porta 22 e o arquivo de chave privada tem 400 permissões.
Atualizar repositórios do Ubuntu.
[email protegido]: ~ $ sudo apt-get update -yAgora instale o nó.js e npm no seu servidor ubuntu.
[email protegido]: ~ $ sudo apt-get install nodejs -y[email protegido]: ~ $ sudo apt-get install npm -y
Verifique a instalação verificando a versão do nó.js e npm.
[email protegido]: ~ $ node -v[email protegido]: ~ $ npm -v
Mova o aplicativo GraphQL para o servidor EC2
A instância EC2 está pronta para implantar aplicativos GraphQL no nó.js. Agora vamos mover nosso código para a instância EC2. Duas maneiras comuns de copiar o código para o servidor estão listadas abaixo e serão discutidas aqui.
- Copie o código usando o comando scp
- Clone o código do aplicativo do Github, Gitlab ou Bitbucket
Copiar aplicativo usando o comando scp
Para copiar seu aplicativo para o servidor EC2 usando o comando scp, em primeiro lugar, remova o diretório 'node_modules' de seu aplicativo graphQL. Este diretório tem todos os pacotes npm necessários para executar o aplicativo. Vamos instalar esses pacotes mais tarde, antes de iniciar o aplicativo GraphQL. Agora compacte o diretório do projeto em um arquivo zip. Depois de criar o arquivo zip, vamos mover o arquivo zip do projeto para o servidor. Linux e Windows têm métodos diferentes para criar um arquivo zip.
janelas
No Windows, clique com o botão direito do mouse no diretório raiz do aplicativo e vá para a opção 'enviar para'. Irá abrir um submenu. Clique na 'pasta compactada (zipada)' para criar um arquivo zip do aplicativo graphQL.
Linux ou Mac
No Linux ou Mac OS, usaremos o comando 'zip' para criar um arquivo zip do projeto.
[email protegido]: ~ $ zip -r graphQL.zip graphQLO comando acima irá gerar o graphQL.arquivo zip do diretório graphQL.
Carregar aplicativo para o servidor
Agora temos um arquivo zip de nosso aplicativo e podemos fazer o upload do arquivo zip para o servidor usando o comando scp.
[email protegido]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /O comando acima irá mover o arquivo zip do projeto para o diretório home do servidor remoto através da conexão ssh. Agora, no servidor remoto, descompacte o arquivo zip do projeto.
[email protegido]: ~ $ unzip graphQL.fecho eclairClonar aplicativo do Github, Bitbucket ou Gitlab
O segundo método para copiar o código do aplicativo para o servidor é usando git. Instale o git a partir da linha de comando no servidor EC2.
[email protegido]: ~ $ sudo apt install gitVerifique a versão git para verificar a instalação.
[email protegido]: ~ $ git --version
Se não fornecer a versão do git, então o git não está instalado. Agora clone o aplicativo do github, gitlab ou bitbucket. Aqui vamos clonar o código do aplicativo do github.
[email protegido]: ~ $ git clone ttps: // github.com / contentful / the-example-app.nodejsIniciando o aplicativo GraphQL
Agora temos nosso aplicativo GraphQL no servidor remoto. Vá para o diretório raiz do aplicativo graphQL e instale os pacotes npm necessários para executar o aplicativo graphQL.
[email protegido]: ~ $ cd graphQL[email protegido]: ~ $ sudo npm install
Este comando irá analisar o pacote.arquivo json no projeto e instale todos os pacotes npm necessários. Depois de instalar os pacotes necessários, agora vamos iniciar o aplicativo graphQL.
[email protegido]: ~ $ node app.jsExecutando o aplicativo como Daemon
Quando executamos o aplicativo usando o método padrão conforme descrito acima, ele é executado em primeiro plano e para quando você fecha a janela do terminal. Podemos executar o aplicativo como um processo em segundo plano, acrescentando o sinal de "e" comercial (&) ao comando.
[email protegido]: ~ $ node app.js &O problema com este método é que quando modificamos o código do nosso aplicativo, as alterações aplicadas não refletem automaticamente. Teremos que reiniciar o aplicativo toda vez que modificarmos o código para aplicar as mudanças. Para executar o aplicativo em segundo plano e aplicar as alterações automaticamente, usaremos um pacote npm chamado pm2. Instale pm2 no servidor.
[email protegido]: ~ $ sudo npm install -g pm2Inicie o aplicativo GraphQL usando pm2.
[email protegido]: ~ $ pm2 iniciar aplicativo.js --name “graphQL” --watchO sinalizador '-name' nomeará o processo de segundo plano, e podemos iniciar e parar o aplicativo usando o nome. O sinalizador '-watch' continuará verificando o código do aplicativo para aplicar as alterações imediatamente. Você pode aprender mais sobre pm2 visitando o seguinte link
https: // pm2.keymetrics.io /
Consultando a API GraphQL do navegador
Podemos configurar nosso aplicativo GraphQL para fazer consultas GraphQL a partir do navegador manualmente. Para isso, temos que criar um ponto de extremidade HTTP separado no qual montaremos o servidor da API GraphQL. E este endpoint HTTP será usado para fazer consultas manuais. A seguir está o código para criar o ponto de extremidade do servidor API GraphQL.
const express = require ('express');const graphqlHTTP = require ('express-graphql');
const buildSchema = require ('graphql');
const graphQLSchema = buildSchema ('
tipo Query
mensagem: String
'
);
const func =
mensagem: () =>
return 'você está usando o servidor API Graphql';
;
servidor const = express ();
servidor.use ('/ graphql', graphqlHTTP (
esquema: graphQLSchema,
rootValue: func,
graphiql: true
));
servidor.ouvir (3000);
Agora, depois de executar o servidor, podemos acessar o servidor API GraphQL na seguinte rota.
http: // localhost: 3000 / graphql
Consultando a API GraphQL usando CLI
Na seção anterior, fizemos consultas GraphQL a partir do navegador usando o Graphiql. Agora vamos fazer consultas GraphQL usando a interface de linha de comando no ubuntu. Na linha de comando, para fazer uma solicitação HTTP POST, usaremos o módulo curl.
[email protegido]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql
Consultando a API GraphQL de maneira programática
Para fazer a consulta GraphQL de forma programática, usaremos o módulo 'node-fetch' no node.js. Nó aberto.js no terminal.
[email protegido]: ~ $ nodeAgora faça a solicitação HTTP POST para o servidor usando o módulo 'node-fetch'.
GraphQL é uma linguagem de consulta eficiente e pode diminuir o tempo de resposta de uma consulta feita ao banco de dados. As chamadas de API padrão para buscar dados do banco de dados envolvem muitos dados inúteis na resposta e, portanto, o tempo de resposta aumenta, o que diminui a eficiência. A consulta feita aos bancos de dados usando GraphQL retorna apenas os dados úteis e, portanto, diminui o tempo de resposta. Neste artigo, implantamos nosso aplicativo GraphQL em uma instância EC2.