NodeJS

Úvod do vytváření GraphQL API a aplikací v uzlu.js

Úvod do vytváření GraphQL API a aplikací v uzlu.js

Komunikace a přenos dat mezi frontendem a backendem jakékoli aplikace probíhá prostřednictvím API (Application Programming Interface). Existuje mnoho různých typů API používaných ke komunikaci mezi front-endovými aplikacemi, jako je RESTful API, SOAP API, GraphQL API atd. GraphQL API je relativně nová technologie a je mnohem rychlejší než jiné dostupné typy API. Načítání dat z databáze pomocí GraphQL api je mnohem rychlejší než REST API. Při používání GraphQL API má klient kontrolu nad získáváním pouze požadovaných dat namísto získání všech podrobností; proto GraphQL API funguje rychleji než REST API.

Instalace balíčků

Postavíme uzel.js aplikace používající GraphQL API, takže musíme nainstalovat uzel.js a npm za to před zahájením projektu.

[chráněno e-mailem]: ~ $ sudo apt-get update -y
[chráněno e-mailem]: ~ $ sudo apt-get install nodejs
[chráněno e-mailem]: ~ $ sudo apt-get install npm

Nastavení projektu

Použijeme „expresní“ rámec z uzlu.js k sestavení naší aplikace. Vytvořte adresář s názvem 'graphql' a spusťte projekt.

[chráněno e-mailem]: ~ $ mkdir graphql
[chráněno e-mailem]: ~ $ cd graphql /
[chráněno e-mailem]: ~ $ npm init -y

Nastavení MongoDB

V našem projektu GraphQL budeme jako naši databázi používat MongoDB. MongoDB je databáze bez schématu a ukládá data ve formě dvojic klíčů. Chcete-li nainstalovat mongoDB, postupujte podle uvedených kroků.

Importujte veřejný klíč GPG pro MongoDB.

[chráněno e-mailem]: ~ $ wget -qO - https: // www.mongodb.org / static / pgp / server-4.4.vzestup | sudo apt-key přidat -


Vytvořte soubor seznamu pro mongodb.

[chráněno e-mailem]: ~ $ echo "deb [arch = amd64, arm64] https: // repo.mongodb.org / apt / ubuntu bionic / mongodb-org / 4.4 multiverse "| sudo tee / etc / apt / sources.seznam.d / mongodb-org-4.4.seznam

Aktualizujte místní úložiště.

[chráněno e-mailem]: ~ $ sudo apt-get update -y

Nainstalujte balíček mongodb.

[chráněno e-mailem]: ~ $ sudo apt-get install -y mongodb-org

Spusťte a povolte mongod.servis.

[chráněno e-mailem]: ~ $ sudo systemctl start mongod.servis
[chráněno e-mailem]: ~ $ sudo systemctl povolit mongod.servis

Instalace modulů npm

Pro naši aplikaci GraphQL musíme nainstalovat nějaké balíčky npm. Nainstalujeme cors, express, body-parser, mongoose atd.

[chráněno e-mailem]: ~ $ cd graphql /
[chráněno e-mailem]: ~ $ npm install cors express body-parser mongoose --save

Chcete-li vytvořit GraphQL api, musíme nainstalovat další balíček npm s názvem 'apollo-server-express.„Tento balíček npm se používá ke spuštění serveru GraphQL se všemi uzly.js HTTP rámce jako 'express.''

[chráněno e-mailem]: ~ $ npm nainstalujte apollo-server-express --save

Definování schématu MongoDB

Nyní máme v Node nastaveno naše prostředí pro naši aplikaci GraphQL.js, a je čas definovat schéma pro naši aplikaci. Vytvořte soubor 'model / student.js 'v kořenovém adresáři projektu.

// definování studentského schématu
const mongoose = require ('mongoose');
const studentSchema = nová mongoose.Schéma(
název:
typ: Řetězec,
požadováno: pravda
,
třída:
typ: číslo,
požadováno: pravda
,
hlavní, důležitý:
typ: Řetězec,
požadováno: pravda

,
časová razítka: pravda
);
const Student = mongoose.model ('Student', studentSchema);
modul.exporty = Student, studentSchema

Ve výše definovaném schématu musí mít každý student jméno, třídu a obor.

Vytváření GraphQL API

Po vytvoření Studentského schématu nyní sestavíme GraphQL API. Vytvořte schéma.js 'pro zápis parametrů GraphQL. V GraphQL API se používají dva parametry, 'typy' a 'překladače'. V 'typech' specifikujeme naše schéma, dotazy (např.G., Vytváření požadavků GET) a mutace (např.G., Vytváření požadavků UPDATE nebo DELETE) na zadané schéma. Napíšeme různé metody definované v 'typech' pro propojení dotazů a mutací s databází v 'překladačech.''

// import schématu a modulu
const gql = require ('apollo-server-express');
const Student = require ('./ models / student ').Student;
// Definování schématu, dotazu a typu mutace
const typeDefs = gql '
typ student
udělal jsem!,
název: Řetězec!,
třída: Int!,
major: Řetězec!

zadejte dotaz
getStudents: [Student],
getStudentById (id: ID!): Student

typ mutace
addStudent (název: String!, třída: Int!, major: Řetězec! ): Student
updateStudent (název: String!, třída: Int!, major: Řetězec! ): Student
deleteStudent (id: ID! ): Student
'
// Definování překladačů
const resolers =
Dotaz:
getStudents: (rodič, args) =>
návrat Student.nalézt();
,
getStudentById: (rodič, args) =>
návrat Student.findById (args.id);

,
Mutace:
addStudent: (parent, args) =>
let student = new Student (
název: args.název,
třída: args.třída,
hlavní: args.hlavní, důležitý
);
návrat student.Uložit();
,
updateStudent: (parent, args) =>
li(!args.id) návrat;
návrat Student.findOneAndUpdate (
_id: args.id
,

$ set:
název: args.název,
třída: args.třída,
hlavní: args.hlavní, důležitý

,
new: true, (err, Student) =>
if (err)
řídicí panel.log (chyba);
else ;
)



modul.exporty =
typeDefs,
řešitelé

Vytvoření serveru GraphQL API

Nyní jsme téměř hotovi s vytvořením aplikace GraphQL. Jediným krokem, který zbývá, je vytvoření serveru. Vytvořte soubor s názvem „aplikace.js 'pro konfiguraci parametrů serveru.

// import požadovaných balíčků
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ématu
const typeDefs, resolvers = require ('./schéma');
// připojení k MongoDB
const url = “mongodb: // 127.0.0.1: 27017 / studenti “;
const connect = mongoose.connect (url, useNewUrlParser: true);
připojit.then ((db) =>
řídicí panel.log ('Připojení bylo úspěšné');
, (chyba) =>
řídicí panel.log (chyba);
);
// vytvoření serveru
const server = nový ApolloServer (
typeDefs: typeDefs,
řešitelé: řešitelé
);
const app = express ();
aplikace.použití (bodyParser.json ());
aplikace.use ('*', cors ());
serveru.applyMiddleware (app);
aplikace.poslouchat (8000, () =>

řídicí panel.log ('naslouchání 8000');
)

Testování GraphQL API

Náš GraphQL server je spuštěný na portu 8000 a je čas otestovat GraphQL API. Otevřete webovou stránku GraphQL v prohlížeči na následující adrese URL.

http: // localhost: 8000 / graphql

A otevře se následující webová stránka.


Přidejte studenta do databáze pomocí GraphQL API.


Podobně přidejte více studentů a po přidání studenta získejte všechny studenty pomocí GraphQL API.


Poznamenejte si ID kteréhokoli ze studentů a získejte konkrétního studenta pomocí jeho ID.

Závěr

Načítání dat z databáze pomocí standardního rozhraní REST API činí dotaz pomalý, protože někdy získáme více dat, než je požadováno. Pomocí GraphQL můžeme načíst přesně požadovaná data, díky nimž je GraphQL API rychlejší. V tomto ukázkovém projektu máme pouze jedno schéma, takže jsme pro toto jediné schéma vytvořili GraphQL API. Také jsme pro schéma definovali tři až čtyři metody. Podle vaší aplikace můžete vytvořit více než jeden dotaz nebo mutace.

Jak změnit velikost, barvu a schéma kurzoru myši a kurzoru v systému Windows 10
Ukazatel myši a kurzor ve Windows 10 jsou velmi důležité aspekty operačního systému. To lze říci i pro jiné operační systémy, takže ve skutečnosti nej...
Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...
Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...