НодеЈС

Увод у прављење ГрапхКЛ АПИ-ја и апликација у чвору.јс

Увод у прављење ГрапхКЛ АПИ-ја и апликација у чвору.јс

Комуникација и пренос података између предњег краја и позадине било које апликације одвија се путем АПИ-ја (Интерфејс за програмирање апликација). Постоји много различитих врста АПИ-ја који се користе за комуникацију између предњих и позадинских апликација попут РЕСТфул АПИ, СОАП АПИ, ГрапхКЛ АПИ итд. ГрапхКЛ АПИ је релативно нова технологија и много је бржи од осталих врста доступних АПИ-ја. Преузимање података из базе података помоћу ГрапхКЛ апи је много брже од РЕСТ АПИ-ја. Док користи ГрапхКЛ АПИ, клијент има контролу да преузме само потребне податке уместо да добије све детаље; зато ГрапхКЛ АПИ ради брже од РЕСТ АПИ-ја.

Инсталирање пакета

Изградићемо чвор.јс користећи ГрапхКЛ АПИ, па морамо да инсталирамо ноде.јс и нпм за ово пре започињања пројекта.

[заштићен е-поштом]: ~ $ судо апт-гет упдате -и
[заштићен е-поштом]: ~ $ судо апт-гет инсталл нодејс
[заштићен е-поштом]: ~ $ судо апт-гет инсталл нпм

Постављање пројекта

Користићемо 'екпресс' оквир из чвора.јс за изградњу наше апликације. Направите директоријум под називом 'грапхкл' и покрените пројекат.

[заштићена е-поштом]: ~ $ мкдир грапхкл
[заштићена е-поштом]: ~ $ цд грапхкл /
[емаил заштићен]: ~ $ нпм инит -и

МонгоДБ Сетуп

У нашем ГрапхКЛ пројекту користићемо МонгоДБ као своју базу података. МонгоДБ је база података без шеме и чува податке у облику парова кључева. Да бисте инсталирали монгоДБ, следите дате кораке.

Увезите јавни ГПГ кључ за МонгоДБ.

[заштићен е-поштом]: ~ $ вгет -кО - хттпс: // ввв.монгодб.орг / статиц / пгп / сервер-4.4.асц | судо апт-кеи додај -


Направите датотеку листе за монгодб.

[заштићен е-поштом]: ~ $ ецхо "деб [арцх = амд64, арм64] хттпс: // репо.монгодб.орг / апт / убунту биониц / монгодб-орг / 4.4 мултиверсе "| судо тее / етц / апт / соурцес.листа.д / монгодб-орг-4.4.листа

Ажурирајте локална спремишта.

[заштићен е-поштом]: ~ $ судо апт-гет упдате -и

Инсталирајте монгодб пакет.

[заштићена е-поштом]: ~ $ судо апт-гет инсталл -и монгодб-орг

Покрените и омогућите монгод.услуга.

[заштићена е-поштом]: ~ $ судо системцтл старт монгод.услуга
[заштићен е-поштом]: ~ $ судо системцтл енабле монгод.услуга

Инсталирање нпм модула

За нашу ГрапхКЛ апликацију морамо да инсталирамо неке нпм пакете. Инсталираћемо цорс, екпресс, боди-парсер, мунгоосе итд.

[емаил заштићен]: ~ $ цд грапхкл /
[заштићен е-поштом]: ~ $ нпм инсталл цорс екпресс боди-парсер монгоосе --саве

Да бисмо креирали ГрапхКЛ апи, треба да инсталирамо додатни нпм пакет под називом 'аполло-сервер-екпресс.'Овај нпм пакет се користи за покретање грапхКЛ сервера са свим Ноде-ом.јс ХТТП оквири попут 'екпресс.'

[заштићена е-поштом]: ~ $ нпм инсталирајте аполло-сервер-екпресс --саве

Дефинисање МонгоДБ шеме

Сада смо поставили своје окружење за нашу ГрапхКЛ апликацију у Ноде-у.јс, и време је да дефинишемо шему за нашу апликацију. Направите датотеку 'моделс / студент.јс 'у основном директоријуму пројекта.

// дефинисање шеме ученика
цонст монгоосе = рекуире ('монгоосе');
цонст студентСцхема = нови мунгос.Шема (
наме:
врста: Стринг,
потребно: тачно
,
класа:
тип: Број,
потребно: тачно
,
главни:
врста: Стринг,
потребно: тачно

,
временске ознаке: тачно
);
цонст Студент = мунгос.модел ('Студент', студентска шема);
модул.екпорт = Студент, студентска шема

У горе дефинисаној шеми, сваки студент мора да има име, разред и смер.

Израда АПИ-ја ГрапхКЛ

Након креирања студентске шеме, сада ћемо направити ГрапхКЛ АПИ. Направите шему.јс 'за писање ГрапхКЛ параметара. У ГрапхКЛ АПИ-у се користе два параметра, „типови“ и „разрешивачи“. У „типови“ ћемо одредити нашу шему, упите (нпр.г., Слање ГЕТ захтева) и мутације (нпр.г., Израда УПДАТЕ или ДЕЛЕТЕ захтева) на наведену шему. Написаћемо различите методе дефинисане у „типовима“ да бисмо повезали упите и мутације са базом података у „разрешивачима“.'

// увоз шеме и модула
цонст гкл = рекуире ('аполло-сервер-екпресс');
цонст Студент = рекуире ('./ модели / студент ').Ученик;
// Дефинисање шеме, упита и типа мутације
цонст типеДефс = гкл '
типе Студент
урадио сам!,
назив: Стринг!,
класа: Инт!,
ужа специјалност: Гудачки!

типе Куери
гетСтудентс: [Студент],
гетСтудентБиИд (ид: ИД!): Ученик

типе Мутатион
аддСтудент (наме: Стринг!, класа: Инт!, ужа специјалност: Гудачки! ): Ученик
упдатеСтудент (наме: Стринг!, класа: Инт!, ужа специјалност: Гудачки! ): Ученик
делетеСтудент (ид: ИД! ): Ученик
'
// Дефинисање решавача
решавачи цонст =
Упит:
гетСтудентс: (надређени, аргументи) =>
повратак Студент.пронађи ();
,
гетСтудентБиИд: (родитељ, аргументи) =>
повратак Студент.финдБиИд (аргс.ид);

,
Мутација:
аддСтудент: (надређени, аргументи) =>
нека студент = нови студент (
име: аргс.име,
разред: аргс.класа,
ужа специјалност: свађе.главни
);
повратак студент.сачувати();
,
упдатеСтудент: (надређени, аргументи) =>
ако(!аргс.ид) повратак;
повратак Студент.финдОнеАндУпдате (
_ид: аргс.ид
,

$ сет:
име: аргс.име,
разред: аргс.класа,
ужа специјалност: свађе.главни

,
нев: труе, (грешка, студент) =>
иф (ерр)
конзола.лог (грешка);
остало ;
)



модул.Извози =
типеДефс,
решавачи

Креирање ГрапхКЛ АПИ сервера

Сада смо скоро готови са креирањем апликације ГрапхКЛ. Преостао је само креирање сервера. Направите датотеку под називом 'апп.јс 'за конфигурисање параметара сервера.

// увоз потребних пакета
цонст екпресс = рекуире ('екпресс');
цонст монгоосе = рекуире ('монгоосе');
цонст бодиПарсер = рекуире ('боди-парсер');
цонст цорс = рекуире ('цорс');
цонст АполлоСервер = рекуире ('аполло-сервер-екпресс');
// увоз шеме
цонст типеДефс, ресолверс = рекуире ('./ шема ');
// повезивање са МонгоДБ
цонст урл = “монгодб: // 127.0.0.1: 27017 / студенти “;
цонст цоннецт = мунгос.повезивање (урл, усеНевУрлПарсер: труе);
повезати.тада ((дб) =>
конзола.лог ('Веза успешна');
, (грешка) =>
конзола.лог (грешка);
);
// креирање сервера
цонст сервер = нови АполлоСервер (
типеДефс: типеДефс,
решавачи: решавачи
);
цонст апп = екпресс ();
апликација.усе (бодиПарсер.јсон ());
апликација.усе ('*', цорс ());
сервер.апплиМиддлеваре (апп);
апликација.Листен (8000, () =>

конзола.дневник ('преслушавање 8000');
)

Тестирање АПИ-ја ГрапхКЛ

Имамо наш ГрапхКЛ сервер који ради и ради на порту 8000, а време је да тестирамо ГрапхКЛ АПИ. Отворите ГрапхКЛ веб страницу у прегледачу тако што ћете посетити следећи урл.

хттп: // лоцалхост: 8000 / грапхкл

И отвориће следећу веб страницу.


Додајте ученика у базу података користећи грапхКЛ АПИ.


Слично томе, додајте још ученика, а након додавања ученика узмите све студенте користећи ГрапхКЛ АПИ.


Забележите ИД било ког од ученика и узмите одређеног ученика помоћу његовог ИД-а.

Закључак

Преузимање података из базе података помоћу стандардног РЕСТ АПИ-а успорава упит јер понекад добијамо више података него што је потребно. Користећи ГрапхКЛ, можемо добити тачно потребне податке који чине ГрапхКЛ АПИ бржим. У овом демо пројекту имамо само једну шему, па смо креирали ГрапхКЛ АПИ за ту једину шему. Такође, дефинисали смо три до четири методе за шему. Можете да направите више упита или мутација у складу са вашом апликацијом.

Како користити АутоКеи за аутоматизацију Линук игара
АутоКеи је услужни програм за аутоматизацију радне површине за Линук и Кс11, програмиран на Питхон 3, ГТК и Кт. Користећи његову скриптну и МАЦРО функ...
Како приказати бројач ФПС-а у Линук играма
Линук гаминг добио је велики потицај када је Валве најавио Линук подршку за Стеам клијент и њихове игре 2012. године. Од тада су многе ААА и индие игр...
Како преузети и играти Сид Меиер'с Цивилизатион ВИ на Линук-у
Увод у игру Цивилизатион 6 је модерни поглед на класични концепт представљен у серији игара Аге оф Емпирес. Идеја је била прилично једноставна; започе...