Instalando os pacotes necessários
A primeira etapa para implantar seu aplicativo GraphQL é preparar seu servidor instalando os pacotes necessários. Faça login no servidor usando SSH.
ubuntu@ubuntu: ~ ssh ubuntu@ipadress -i Keypair.PEM
OBSERVAÇÃO: Verifique se o grupo de segurança da instância está configurado para permitir a conexão da porta 22 e o arquivo de chave privado tem 400 permissão.
Atualize os repositórios do Ubuntu.
ubuntu@ubuntu: ~ $ sudo apt -get update -y
Agora instale o nó.JS e NPM em seu servidor Ubuntu.
ubuntu@ubuntu: ~ $ sudo apt -get install nodejs -y
ubuntu@ubuntu: ~ $ sudo apt -get install npm -y
Verifique a instalação verificando a versão do nó.JS e NPM.
ubuntu@ubuntu: ~ $ node -v
ubuntu@ubuntu: ~ $ npm -v
Mova o aplicativo GraphQL para o servidor EC2
A instância do EC2 está pronta para implantar aplicativos grafql no nó.JS. Agora vamos mover nosso código para a instância do EC2. Duas maneiras comuns de copiar o código para o servidor estão listadas abaixo e serão discutidas aqui.
Copie o aplicativo usando o comando scp
Para copiar seu aplicativo para o servidor EC2 usando o comando SCP, primeiro, remova o diretório 'Node_modules' do seu aplicativo GraphQL. Este diretório possui todos os pacotes NPM necessários para executar o aplicativo. Instalaremos 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, moveremos 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'. Ele abrirá um submenu. Clique na pasta 'compactada (com zíper)' 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.
ubuntu@ubuntu: ~ $ zip -r graphql.ZIP GraphQL
O comando acima gerará o grafql.arquivo zip do diretório grafql.
Carregue o aplicativo para o servidor
Agora temos um arquivo zip do nosso aplicativo e podemos fazer upload do arquivo zip para o servidor usando o comando scp.
ubuntu@ubuntu: ~ $ scp -i teclado.PEM grafql.zip ubuntu@ipaddress: ~///
O comando acima moverá o arquivo zip do projeto para o diretório inicial do servidor remoto sobre a conexão SSH. Agora no servidor remoto, descompacte o arquivo zip do projeto.
ubuntu@ubuntu: ~ $ UNZIP graphql.fecho eclair
CLONE APLICAÇÃO DE GITHUB, BITBUCKET ou GITLAB
O segundo método para copiar o código do aplicativo para o servidor está usando o Git. Instale o git da linha de comando no servidor EC2.
ubuntu@ubuntu: ~ $ sudo apt install git
Verifique a versão Git para verificar a instalação.
ubuntu@ubuntu: ~ $ git --version
Se não der a versão do git, o git não será instalado. Agora clone a aplicação do Github, Gitlab ou Bitbucket. Aqui vamos clonar o código do aplicativo do github.
ubuntu@ubuntu: ~ clone git ttps: // github.com/contentful/the-Exemplo-App.nodejs
Iniciando o aplicativo GraphQL
Agora temos nosso aplicativo grafql no servidor remoto. Vá para o diretório raiz do aplicativo GraphQL e instale os pacotes NPM necessários para executar o aplicativo GraphQL.
ubuntu@ubuntu: ~ $ cd graphql
ubuntu@ubuntu: ~ $ sudo npm install
Este comando analisará o pacote.Arquivo JSON no projeto e instale todos os pacotes NPM necessários. Depois de instalar os pacotes necessários, agora iniciaremos o aplicativo GraphQL.
ubuntu@ubuntu: ~ aplicativo node.JS
Executando o aplicativo como daemon
Quando executamos o aplicativo usando o método padrão, conforme descrito acima, ele é executado em primeiro plano e o aplicativo para quando você fecha a janela do terminal. Podemos executar o aplicativo como um processo em segundo plano, anexando o sinalização de amperas e (&) ao comando.
ubuntu@ubuntu: ~ aplicativo node.JS &
O problema com esse método é que, quando modificamos nosso código de aplicativo, as alterações aplicadas não refletirão automaticamente. Teremos que reiniciar o aplicativo toda vez que modificamos o código para aplicar as alterações. Para executar o aplicativo em segundo plano e aplicar alterações automaticamente, usaremos um pacote NPM chamado PM2. Instale o PM2 no servidor.
ubuntu@ubuntu: ~ $ sudo npm install -g pm2
Inicie o aplicativo GraphQL usando PM2.
ubuntu@ubuntu: ~ $ pm2 Start App.JS -Nome "GraphQL" -Watch
O sinalizador '-name' nomeará o processo em segundo plano e podemos iniciar e interromper o aplicativo usando o nome. A bandeira '-watch' continuará verificando o código do aplicativo para aplicar alterações imediatamente. Você pode aprender mais sobre o PM2 visitando o seguinte link
https: // pm2.Keymetrics.io/
Consultando a API GraphQL do navegador
Podemos configurar nosso aplicativo GraphQL para fazer consultas grafql do navegador manualmente. Para isso, temos que criar um terminal HTTP separado no qual montaremos o servidor API GraphQL. E este endpoint http será usado para fazer consultas manuais. A seguir, o código para criar o terminal do servidor APHQL API.
const express = requer ('express');
const graphqlHttp = requer ('express-graphql');
const BuildSchema = requer ('graphql');
const graphqlschema = BuildSchema ('
Consulta de tipos
Mensagem: String
'
);
const func =
mensagem: () =>
retornar 'você está usando o servidor API GraphQL';
;
const server = express ();
servidor.use ('/graphql', grafqlhttp (
Esquema: grafqlschema,
rootValue: func,
GraphIQL: true
));
servidor.Ouça (3000);
Agora, depois de executar o servidor, podemos acessar o servidor API GraphQL na rota a seguir.
http: // localhost: 3000/graphql
Consultando a API GraphQL usando CLI
Na seção anterior, fizemos consultas grafql do navegador usando graphiql. Agora vamos fazer consultas grafql usando a interface da linha de comando no Ubuntu. Na linha de comando, para fazer uma solicitação de postagem HTTP, usaremos o módulo Curl.
ubuntu@ubuntu: ~ $ curl -x post -h "content -type: Application/json" -d '"query": "message"' http: // lochost: 3000/graphql
Consultando a API grafql programaticamente
Para fazer a consulta grafql programaticamente, usaremos o módulo 'nó-fetch' no nó.JS. Nó aberto.JS no terminal.
ubuntu@ubuntu: ~ $ node
Agora faça a solicitação de postagem http ao servidor usando o módulo 'nó-fetch'.
GraphQL é uma linguagem de consulta eficiente e pode diminuir o tempo de resposta de uma consulta feita no banco de dados. A API padrão chama para buscar dados do banco de dados envolvem muitos dados não utilizados na resposta e, portanto, o tempo de resposta aumenta, o que diminui a eficiência. A consulta feita nos bancos de dados usando grafql retorna apenas os dados úteis e, portanto, diminui o tempo de resposta. Neste artigo, implantamos nosso aplicativo GraphQL em uma instância do EC2.