NodeJS

Úvod do tvorby GraphQL API a aplikácií v uzle.js

Úvod do tvorby GraphQL API a aplikácií v uzle.js

Komunikácia a prenos dát medzi frontendom a backendom akejkoľvek aplikácie prebieha prostredníctvom API (Application Programming Interface). Existuje mnoho rôznych typov rozhraní API používaných na komunikáciu medzi front-endovými aplikáciami, ako sú RESTful API, SOAP API, GraphQL API atď. GraphQL API je relatívne nová technológia a je oveľa rýchlejšia ako iné dostupné typy API. Načítanie údajov z databázy pomocou GraphQL api je oveľa rýchlejšie ako REST API. Pri používaní GraphQL API má klient kontrolu nad získavaním iba požadovaných údajov namiesto získania všetkých podrobností; preto GraphQL API funguje rýchlejšie ako REST API.

Inštalácia balíkov

Postavíme uzol.js aplikácia používajúca GraphQL API, takže musíme nainštalovať uzol.js a npm za to pred začatím projektu.

[chránené e-mailom]: ~ $ sudo apt-get update -y
[chránené e-mailom]: ~ $ sudo apt-get install nodejs
[chránené e-mailom]: ~ $ sudo apt-get install npm

Nastavenie projektu

Použijeme rámec „express“ z uzla.js na zostavenie našej aplikácie. Vytvorte adresár s názvom „graphql“ a spustite projekt.

[chránené e-mailom]: ~ $ mkdir graphql
[chránené e-mailom]: ~ $ cd graphql /
[chránené e-mailom]: ~ $ npm init -y

Nastavenie MongoDB

V našom projekte GraphQL použijeme ako svoju databázu MongoDB. MongoDB je databáza bez schémy a ukladá údaje vo forme dvojíc kľúčov. Pri inštalácii mongoDB postupujte podľa uvedených krokov.

Importujte verejný kľúč GPG pre MongoDB.

[chránené e-mailom]: ~ $ wget -qO - https: // www.mongodb.org / static / pgp / server-4.4.vzostup | sudo apt-key pridať -


Vytvorte súbor zoznamu pre mongodb.

[chránené e-mailom]: ~ $ echo "deb [arch = amd64, arm64] https: // repo.mongodb.org / apt / ubuntu bionic / mongodb-org / 4.4 multiverse "| sudo tee / etc / apt / sources.zoznam.d / mongodb-org-4.4.zoznam

Aktualizujte miestne úložiská.

[chránené e-mailom]: ~ $ sudo apt-get update -y

Nainštalujte si balíček mongodb.

[chránené e-mailom]: ~ $ sudo apt-get install -y mongodb-org

Spustite a povoľte mongod.služby.

[chránené e-mailom]: ~ $ sudo systemctl start mongod.služby
[chránené e-mailom]: ~ $ sudo systemctl povoliť mongod.služby

Inštalácia npm modulov

Pre našu aplikáciu GraphQL musíme nainštalovať niekoľko balíkov npm. Nainštalujeme cors, express, body-parser, mongoose atď.

[chránené e-mailom]: ~ $ cd graphql /
[chránené e-mailom]: ~ $ npm nainštalovať cors express body-parser mongoose - uložiť

Aby sme vytvorili GraphQL api, musíme si nainštalovať ďalší balíček npm s názvom 'apollo-server-express.„Tento balík npm sa používa na spustenie servera graphQL so všetkým uzlom.js HTTP rámce ako 'express.„

[chránené e-mailom]: ~ $ npm nainštalovať apollo-server-express --save

Definovanie schémy MongoDB

Teraz máme naše prostredie nastavené pre našu aplikáciu GraphQL v Node.js, a je čas definovať schému pre našu aplikáciu. Vytvorte súbor 'models / student.js 'v koreňovom adresári projektu.

// definovanie študentskej schémy
const mongoose = require ('mongoose');
const studentSchema = nová mongoose.Schéma (
názov:
typ: Reťazec,
požadované: pravda
,
trieda:
typ: Číslo,
požadované: pravda
,
hlavný:
typ: Reťazec,
požadované: pravda

,
časové značky: pravda
);
konšt Študent = mongoose.model ('Študent', studentSchema);
modul.exporty = Študent, studentSchema

Vo vyššie definovanej schéme musí mať každý študent meno, triedu a hlavné smery.

Budovanie GraphQL API

Po vytvorení Študentskej schémy teraz zostavíme GraphQL API. Vytvorte schému.js 'na zápis parametrov GraphQL. V GraphQL API sa používajú dva parametre, 'typy' a 'prekladače'. V 'typoch' uvedieme našu schému, dotazy (napr.g., Vytváranie žiadostí GET) a mutácie (napr.g., Vytváranie požiadaviek UPDATE alebo DELETE) na zadanú schému. Napíšeme rôzne metódy definované v „typoch“ na prepojenie otázok a mutácií s databázou v „prekladačoch“.„

// import schémy a modulu
const gql = require ('apollo-server-express');
const Student = require ('./ models / student ').Študent;
// Definovanie schémy, dotazu a typu mutácie
const typeDefs = gql '
typ študent
urobil som!,
názov: Reťazec!,
trieda: Int!,
major: Reťazec!

zadajte dopyt
getStudents: [študent],
getStudentById (id: ID!): Študent

typ mutácia
addStudent (názov: String!, trieda: Int!, major: Reťazec! ): Študent
updateStudent (názov: String!, trieda: Int!, major: Reťazec! ): Študent
deleteStudent (id: ID! ): Študent
'
// Definovanie riešení
konštanta =
Dopyt:
getStudents: (parent, args) =>
návrat Študent.Nájsť();
,
getStudentById: (rodič, args) =>
návrat Študent.findById (argumenty.id);

,
Mutácia:
addStudent: (parent, args) =>
let student = new Student (
meno: args.názov,
trieda: args.trieda,
hlavný: args.major
);
návrat študent.uložiť ();
,
updateStudent: (parent, args) =>
ak (!args.id) návrat;
návrat Študent.findOneAndUpdate (
_id: args.id
,

$ set:
meno: args.názov,
trieda: args.trieda,
hlavný: args.major

,
new: true, (err, Student) =>
if (err)
konzola.log (chyba);
else ;
)



modul.exporty =
typeDefs,
riešitelia

Vytváranie servera GraphQL API

Teraz sme takmer hotoví s vytváraním aplikácie GraphQL. Jediným krokom, ktoré zostáva, je vytvorenie servera. Vytvorte súbor s názvom „aplikácia“.js 'na konfiguráciu parametrov servera.

// import požadovaných balíkov
const express = require ('express');
const mongoose = require ('mongoose');
const bodyParser = require ('body-parser');
const cors = require ('cors');
const ApolloServer = require ('apollo-server-express');
// import schémy
const typeDefs, resolvers = require ('./ schema ');
// pripojenie k MongoDB
const url = “mongodb: // 127.0.0.1: 27017 / študenti “;
const connect = mongoose.connect (url, useNewUrlParser: true);
spojiť.potom ((db) =>
konzola.log ('Pripojenie bolo úspešné');
, (chyba) =>
konzola.log (chyba);
);
// vytváranie servera
const server = nový ApolloServer (
typeDefs: typeDefs,
riešitelia: riešitelia
);
const app = express ();
aplikácia.použitie (bodyParser.json ());
aplikácia.use ('*', cors ());
server.applyMiddleware (app);
aplikácia.počúvať (8000, () =>

konzola.log ('počúva 8000');
)

Testovanie GraphQL API

Náš graphQL server je funkčný na porte 8000 a je čas otestovať GraphQL API. Otvorte webovú stránku GraphQL v prehliadači navštívením nasledujúcej adresy URL.

http: // localhost: 8000 / graphql

A otvorí sa nasledujúca webová stránka.


Pridajte študenta do databázy pomocou GraphQL API.


Podobne pridajte ďalších študentov a po pridaní študenta získajte všetkých študentov pomocou GraphQL API.


Poznačte si ID ktoréhokoľvek zo študentov a získajte konkrétneho študenta pomocou jeho ID.

Záver

Načítanie údajov z databázy pomocou štandardného rozhrania REST API robí dopyt pomalý, pretože niekedy získame viac údajov, ako je potrebné. Pomocou GraphQL dokážeme načítať presne požadované údaje, ktoré zrýchľujú rozhranie GraphQL API. V tomto ukážkovom projekte máme iba jednu schému, takže sme pre túto schému vytvorili GraphQL API. Pre schému sme tiež definovali tri až štyri metódy. Podľa svojej aplikácie môžete vytvoriť viac ako jeden dotaz alebo mutácie.

Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvorenie vlastnej simulácie dopravy môže byť zábavné, relaxačné a mimoriadne lákavé. Preto sa musíte uistiť, že vyskúšate čo najviac hier, aby ste n...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z najpopulárnejších obchodných simulačných hier. V tejto hre musíte vytvoriť úžasné dopravné podnikanie. Začnete však na začiatku ok...