Instaliranje potrebnih paketa
Prvi korak za postavljanje vaše graphQL aplikacije je priprema vašeg poslužitelja instaliranjem potrebnih paketa. Prijavite se na poslužitelj pomoću SSH-a.
[e-pošta zaštićena]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pemBILJEŠKA: Provjerite je li sigurnosna grupa instance konfigurirana da dopušta povezivanje s porta 22 i da datoteka privatnog ključa ima 400 dopuštenja.
Ažurirajte Ubuntu spremišta.
[zaštićena e-poštom]: ~ $ sudo apt-get update -ySada instalirajte čvor.js i npm na vašem ubuntu poslužitelju.
[zaštićen e-poštom]: ~ $ sudo apt-get install nodejs -y[zaštićen e-poštom]: ~ $ sudo apt-get install npm -y
Provjerite instalaciju provjerom verzije čvora.js i npm.
[zaštićen e-poštom]: ~ $ čvor -v[e-pošta zaštićena]: ~ $ npm -v
Premjestite GraphQL aplikaciju na EC2 poslužitelj
Instanca EC2 spremna je za raspoređivanje GraphQL aplikacija u čvor.js. Sada ćemo premjestiti naš kôd na instancu EC2. U nastavku su navedena dva uobičajena načina kopiranja koda na poslužitelj, a ovdje će biti riječi.
- Kopirajte kod pomoću naredbe scp
- Klonirajte aplikacijski kod iz Githuba, Gitlaba ili Bitbuketa
Kopiranje aplikacije pomoću naredbe scp
Da biste kopirali svoju aplikaciju na EC2 poslužitelj pomoću naredbe scp, prije svega uklonite direktorij 'node_modules' iz vaše graphQL aplikacije. Ovaj direktorij sadrži sve npm pakete potrebne za pokretanje aplikacije. Te ćemo pakete instalirati kasnije prije pokretanja aplikacije graphQL. Sada komprimirajte direktorij projekta u zip datoteku. Nakon stvaranja zip datoteke, premjestit ćemo zip datoteku projekta na poslužitelj. Linux i Windows imaju različite metode za stvaranje zip datoteke.
Windows
U sustavu Windows desnom tipkom miša kliknite korijenski direktorij aplikacije i idite na opciju 'pošalji u'. Otvorit će se podizbornik. Kliknite na 'Stisnuta (zip) mapa' da biste stvorili zip datoteku aplikacije graphQL.
Linux ili Mac
U Linuxu ili Mac OS-u koristit ćemo naredbu 'zip' za stvaranje zip datoteke projekta.
[zaštićena e-poštom]: ~ $ zip -r graphQL.zip grafQLGornja naredba generirat će graphQL.zip datoteka direktorija graphQL.
Prenesite aplikaciju na poslužitelj
Sada imamo zip datoteku naše aplikacije, a zip datoteku možemo prenijeti na poslužitelj pomoću naredbe scp.
[e-pošta zaštićena]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /Gornja naredba premjestit će zip datoteku projekta u kućni direktorij udaljenog poslužitelja preko ssh veze. Sada na udaljenom poslužitelju raspakirajte zip datoteku projekta.
[zaštićena e-poštom]: ~ $ unzip graphQL.zipKlonirajte aplikaciju iz Githuba, Bitbuketa ili Gitlaba
Druga metoda kopiranja aplikacijskog koda na poslužitelj je upotreba git-a. Instalirajte git iz naredbenog retka na EC2 poslužitelju.
[zaštićen e-poštom]: ~ $ sudo apt install gitProvjerite verziju gita da biste provjerili instalaciju.
[zaštićena e-poštom]: ~ $ git --version
Ako ne daje verziju gita, tada git nije instaliran. Sada klonirajte aplikaciju iz githuba, gitlaba ili bitbuketa. Ovdje ćemo klonirati aplikacijski kod iz githuba.
[e-pošta zaštićena]: ~ $ git clone ttps: // github.com / sadržajno / the-example-app.nodejsPokretanje aplikacije GraphQL
Sada imamo našu grafičku aplikacijuQLQL na udaljenom poslužitelju. Idite u korijenski direktorij grafičke aplikacije i instalirajte potrebne npm pakete za pokretanje grafičke aplikacije.
[zaštićena e-poštom]: ~ $ cd graphQL[zaštićena e-poštom]: ~ $ sudo npm install
Ova naredba će analizirati paket.json datoteku u projektu i instalirajte sve potrebne npm pakete. Nakon instalacije potrebnih paketa, sada ćemo pokrenuti aplikaciju graphQL.
[zaštićena e-poštom]: ~ $ node app.jsPokretanje aplikacije kao Daemon
Kada aplikaciju pokrenemo standardnom metodom kako je gore opisano, ona se pokreće u prvom planu, a aplikacija se zaustavlja kad zatvorite prozor terminala. Aplikaciju možemo pokrenuti kao pozadinski postupak dodavanjem znaka ampersand (&) naredbi.
[zaštićena e-poštom]: ~ $ node app.js &Problem s ovom metodom je taj što se, kada izmijenimo kod aplikacije, primijenjene promjene neće automatski odražavati. Morat ćemo ponovno pokrenuti aplikaciju svaki put kada izmijenimo kôd kako bismo primijenili promjene. Kako bismo pokrenuli aplikaciju u pozadini i automatski primijenili promjene, koristit ćemo npm paket nazvan pm2. Instalirajte pm2 na poslužitelj.
[e-pošta zaštićena]: ~ $ sudo npm install -g pm2Pokrenite program graphQL pomoću pm2.
[zaštićena e-poštom]: ~ $ pm2 start app.js --name “graphQL” --watchOznaka '-name' imenovat će pozadinski postupak, a aplikaciju možemo pokrenuti i zaustaviti pomoću imena. Oznaka '-watch' nastavit će provjeravati kod aplikacije kako bi odmah primijenio promjene. Više o pm2 možete saznati posjetom sljedećem linku
https: // pm2.keymetrics.io /
Upit za GraphQL API iz preglednika
Možemo konfigurirati našu aplikaciju graphQL za ručno izrađivanje upita GraphQL iz preglednika. Za to moramo stvoriti zasebnu HTTP krajnju točku na koju ćemo montirati GraphQL API poslužitelj. A ova će se HTTP krajnja točka koristiti za ručno postavljanje upita. Slijedi kod za stvaranje krajnje točke api poslužitelja graphQL.
const express = require ('express');const graphqlHTTP = zahtijeva ('express-graphql');
const buildSchema = zahtijeva ('graphql');
const graphQLSchema = buildSchema ('
upišite upit
poruka: Niz
'
);
const func =
poruka: () =>
return 'koristite API poslužitelj graphql';
;
const poslužitelj = express ();
poslužitelju.use ('/ graphql', graphqlHTTP (
shema: graphQLSchema,
rootValue: func,
graphiql: istina
));
poslužitelju.slušati (3000);
Sada, nakon pokretanja poslužitelja, možemo pristupiti graphQL api poslužitelju na sljedećoj ruti.
http: // localhost: 3000 / graphql
Upit za GraphQL API pomoću CLI-ja
U prethodnom smo odjeljku iz preglednika izrađivali GraphQL upite koristeći graphiql. Sada ćemo napraviti GraphQL upite koristeći sučelje naredbenog retka u ubuntuu. Iz naredbenog retka za izradu HTTP POST zahtjeva koristit ćemo modul curl.
[zaštićena e-poštom]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql
Programsko postavljanje upita za GraphQL API
Da bismo programski izvršili GraphQL upit, koristit ćemo modul 'node-fetch' u čvoru.js. Otvoreni čvor.js u terminalu.
[e-pošta zaštićena]: ~ $ čvorSada uputite HTTP POST zahtjev poslužitelju pomoću modula 'dohvaćanje čvora'.
GraphQL je učinkovit jezik upita i može smanjiti vrijeme odziva na upit upućen bazi podataka. Standardni api pozivi za dohvaćanje podataka iz baze podataka uključuju mnoštvo nekorisnih podataka u odgovoru, a time se i vrijeme odziva povećava, što smanjuje učinkovitost. Upit upućen bazama podataka pomoću GraphQL-a vraća samo korisne podatke i time smanjuje vrijeme odziva. U ovom smo članku rasporedili našu aplikaciju graphQL na instancu EC2.