NodeJS

Uvod v izdelavo API-jev in aplikacij GraphQL v vozlišču.js

Uvod v izdelavo API-jev in aplikacij GraphQL v vozlišču.js

Komunikacija in prenos podatkov med čelnim delom in zaledjem katere koli aplikacije poteka prek API-jev (vmesnik za programiranje aplikacij). Obstaja veliko različnih vrst API-jev, ki se uporabljajo za komunikacijo med sprednjimi in zalednimi aplikacijami, kot so RESTful API, SOAP API, GraphQL API itd. API GraphQL je razmeroma nova tehnologija in je veliko hitrejši od drugih vrst API-jev, ki so na voljo. Pridobivanje podatkov iz baze podatkov s pomočjo GraphQL api je veliko hitrejše kot API REST. Med uporabo API-ja GraphQL ima odjemalec nadzor nad pridobivanjem le zahtevanih podatkov, namesto da bi dobil vse podrobnosti; zato GraphQL API deluje hitreje kot REST API.

Nameščanje paketov

Zgradili bomo vozlišče.js z uporabo API-ja GraphQL, zato moramo namestiti vozlišče.js in npm za to pred začetkom projekta.

[e-pošta zaščitena]: ~ $ sudo apt-get update -y
[zaščiteno po e-pošti]: ~ $ sudo apt-get install nodejs
[e-pošta zaščitena]: ~ $ sudo apt-get install npm

Nastavitev projekta

Uporabili bomo ogrodje 'express' iz vozlišča.js za izdelavo naše aplikacije. Ustvarite imenik z imenom 'graphql' in začnite projekt.

[e-pošta zaščitena]: ~ $ mkdir graphql
[zaščiteno po e-pošti]: ~ $ cd graphql /
[e-pošta zaščitena]: ~ $ npm init -y

MongoDB Setup

V našem projektu GraphQL bomo kot bazo podatkov uporabili MongoDB. MongoDB je podatkovna baza brez sheme in podatke shranjuje v obliki parov ključev. Če želite namestiti mongoDB, sledite spodnjim korakom.

Uvozite javni GPG ključ za MongoDB.

[e-pošta zaščitena]: ~ $ wget -qO - https: // www.mongodb.org / static / pgp / server-4.4.asc | sudo apt-key add -


Ustvarite datoteko s seznamom za mongodb.

[e-pošta zaščitena]: ~ $ 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

Posodobite lokalne repozitorije.

[e-pošta zaščitena]: ~ $ sudo apt-get update -y

Namestite paket mongodb.

[zaščiteno po e-pošti]: ~ $ sudo apt-get install -y mongodb-org

Zaženite in omogočite mongod.storitev.

[e-pošta zaščitena]: ~ $ sudo systemctl start mongod.storitev
[e-pošta zaščitena]: ~ $ sudo systemctl omogoči mongod.storitev

Namestitev modulov npm

Za našo aplikacijo GraphQL moramo namestiti nekaj paketov npm. Namestili bomo cors, express, parser za telo, mungo itd.

[zaščiteno po e-pošti]: ~ $ cd graphql /
[e-pošta zaščitena]: ~ $ npm namestite cors express body-parser mongoose --save

Če želite ustvariti GraphQL api, moramo namestiti dodaten paket npm z imenom 'apollo-server-express.'Ta paket npm se uporablja za zagon strežnika graphQL z vsemi vozlišči.js HTTP okviri, kot je 'express."

[e-pošta zaščitena]: ~ $ npm namesti apollo-server-express --save

Opredelitev sheme MongoDB

Zdaj imamo okolje nastavljeno za našo aplikacijo GraphQL v Node.js in čas je, da določimo shemo za našo aplikacijo. Ustvari datoteko 'models / student.js 'v korenskem imeniku projekta.

// definiranje študentske sheme
const mongoose = require ('mongoose');
const studentSchema = nov mungos.Shema (
ime:
vrsta: niz,
obvezno: res
,
razred:
vrsta: Številka,
obvezno: res
,
glavni predmet:
vrsta: niz,
obvezno: res

,
časovni žigi: true
);
const Študent = mungos.model ('Student', studentSchema);
modul.izvoz = Študent, študentska shema

V zgoraj opredeljeni shemi mora imeti vsak študent ime, razred in glavni predmet.

Izdelava API-ja GraphQL

Po izdelavi študentske sheme bomo zdaj zgradili GraphQL API. Ustvari shemo.js 'za zapisovanje parametrov GraphQL. V GraphQL API-ju se uporabljata dva parametra, "tipi" in "razreševalci". V 'tipi' bomo določili našo shemo, poizvedbe (npr.g., Izdelava zahtev GET) in mutacije (npr.g., Izdelava zahtev za UPDATE ali DELETE) na določeno shemo. Za povezovanje poizvedb in mutacij z bazo podatkov v razreševalcih bomo zapisali različne metode, opredeljene v 'tipih'."

// uvoz sheme in modula
const gql = require ('apollo-server-express');
const Študent = zahteva ('./ modeli / študent ').Študent;
// Določanje sheme, poizvedbe in vrste mutacije
const typeDefs = gql '
tip Študent
jaz sem!,
ime: Niz!,
razred: Int!,
glavni: String!

vnesite poizvedbo
getStudents: [Študent],
getStudentById (id: ID!): Študent

vrsta mutacije
addStudent (ime: String!, razred: Int!, glavni: String! ): Študent
updateStudent (ime: String!, razred: Int!, glavni: String! ): Študent
deleteStudent (id: ID! ): Študent
'
// Določanje razreševalcev
reševalci const =
Poizvedba:
getStudents: (nadrejeni, args) =>
vrnitev Študent.najti();
,
getStudentById: (nadrejeni, argumenti) =>
vrnitev Študent.findById (arg.id);

,
Mutacija:
addStudent: (nadrejeni, args) =>
naj študent = novi študent (
ime: args.ime,
razred: args.razred,
glavni: arg.major
);
študent vrnitve.shrani ();
,
updateStudent: (nadrejeni, args) =>
če (!argume.id) vrnitev;
vrnitev Študent.findOneAndUpdate (
_id: args.id
,

$ set:
ime: args.ime,
razred: args.razred,
glavni: arg.major

,
new: true, (napaka, študent) =>
če (napaka)
konzola.dnevnik (napaka);
drugače ;
)



modul.izvoz =
typeDefs,
reševalci

Ustvarjanje strežnika API GraphQL

Zdaj smo skoraj končali z ustvarjanjem aplikacije GraphQL. Preostane le še strežnik. Ustvarite datoteko z imenom 'app.js 'za konfiguriranje parametrov strežnika.

// uvoz potrebnih paketov
const express = require ('express');
const mongoose = require ('mongoose');
const bodyParser = require ('body-parser');
const cors = require ('cors');
const ApolloServer = require ('apollo-server-express');
// uvažanje sheme
const typeDefs, resolvers = require ('./ shema ');
// povezovanje z MongoDB
const url = “mongodb: // 127.0.0.1: 27017 / študentje «;
const connect = mongoose.povezava (url, useNewUrlParser: true);
povezati.potem ((db) =>
konzola.log ('Povezava uspešna');
, (napaka) =>
konzola.dnevnik (napaka);
);
// ustvarjanje strežnika
strežnik const = nov ApolloServer (
typeDefs: typeDefs,
reševalci: reševalci
);
const app = express ();
app.uporaba (bodyParser.json ());
app.uporaba ('*', cors ());
strežnik.applyMiddleware (app);
app.poslušaj (8000, () =>

konzola.dnevnik ('poslušanje 8000');
)

Testiranje API-ja GraphQL

Naš strežnik graphQL deluje in deluje na vratih 8000 in čas je, da preizkusimo API GraphQL. Odprite spletno stran GraphQL v brskalniku, tako da obiščete naslednji URL.

http: // localhost: 8000 / graphql

In odprla se bo naslednja spletna stran.


Študenta dodajte v bazo podatkov z API-jem graphQL.


Podobno dodajte več študentov in po dodajanju študenta pridobite vse študente z uporabo API-ja GraphQL.


Upoštevajte ID katerega koli študenta in pridobite določenega študenta z uporabo njegovega id.

Zaključek

Pridobivanje podatkov iz baze podatkov s standardnim API-jem REST poizveduje počasi, saj včasih dobimo več podatkov, kot je zahtevano. Z uporabo GraphQL-a lahko pridobimo natančno zahtevane podatke, ki pospešujejo API-je GraphQL. V tem predstavitvenem projektu imamo samo eno shemo, zato smo za to eno shemo ustvarili GraphQL API. Za shemo smo določili tudi tri do štiri metode. Glede na aplikacijo lahko ustvarite več poizvedb ali mutacij.

Microsoft Sculpt Touch Wireless Mouse Review
Pred kratkim sem prebral o Microsoftov kiparski dotik brezžično miško in se odločil za nakup. Potem ko sem ga nekaj časa uporabljal, sem se odločil, d...
Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...