Projektowanie Serwera
2 godz. 7 min · Full-stack i Programowanie
Przemysław NowakSoftware EngineerJeżeli kiedykolwiek używałeś GraphQL aby pobrać dane na Front-endzie to z pewnością wiesz, że aby to zrobić musisz znać połączenie Grafów oraz wiedzieć jak stworzyć odpowiednie zapytanie. W kursie tym nauczysz się jak takie grafy projektować od strony serwera i dostarczać je dla FrontEnd Developerów.
Dowiesz się jakie jest połączenie pomiędzy schematem serwera a resolverami. Schemat (schema) to nic innego jak opis aplikacji GraphQL z podziałem na typy i relacje - właśnie w taki sposób tworzą się grafy - natomiast resolvery są odpowiednikami w kodzie - wykonującymi się za każdym razem kiedy ktoś wysyła odpowiednie zapytanie. Dokładnie wytłumaczę Ci korelację pomiędzy tymi dwiema rzeczami oraz na konkretnych przykładach zrozumiesz jak je implementować.
Statystyki są nieubłagane - coraz więcej firm inwestuje w GraphQL ze względu na rewolucyjne podejście do pobierania danych oraz jego prostotę. Dlatego jeżeli spojrzymy na rynek pracy to możemy zobaczyć, że GraphQL staję się pewnego rodzaju "must have", którego z pewnością warto się nauczyć.
Przekonasz się, że tworzenie backendu z GraphQL jest niesamowicie szybkie. Kiedy zrozumiesz podstawowe połączenia schematu i resolverów nic Cie nie powstrzyma od błyskawicznego pisania kodu. Jeżeli chcesz stworzyć MVP, czy zaimplementować elastyczny mikro serwis to GraphQL może okazać się strzałem w dziesiątke dlatego, że możesz stworzyć aplikację z prędkością światła, a co więcej, każda rozbudowa jest bardzo prosta ze względu na brak zależności w kodzie.
Tego wszystkiego nauczysz się w tym kursie, odczyt i zapis danych wydają się rzeczą normalną, natomiast dla mnie najciekawszą rzeczą są subskrypcje dzięki, którym możesz tworzyć aplikacje działające w czasie rzeczywistym. Zobaczysz, że z GraphQL wcale to nie jest skomplikowane, a wręcz banalnie proste!
Kurs ten jest skierowany do osób, które mają podstawową wiedzę nt. GraphQLa oraz znają podstawy JavaScript - ponieważ za pomocą NodeJS zaimplementujemy serwer GraphQL. Jeśli jeszcze tego nie zrobiłeś/aś - polecamy przed przystąpieniem do tego kursu przerobienie materiałów JavaScript od Podstaw, kursu podstawowego GraphQL, a mile widziana jest także znajomość zagadnień z kursów Node.js.
W pierwszej lekcji kursu, w której skonfigurujemy sobie środowisko serwera
serwera, z którego korzystaliśmy już w pierwszym kursie.
Będzie to aplikacja książek i to co
widzisz na ekranie są to grafy dla książek, autorów komentarzy.
Dokładnie z tego korzystaliśmy w pierwszym kursie, więc jeżeli jeszcze go nie
widziałeś, to zachęcam Cię, abyś to zrobił, ponieważ wytłumaczyłem tam takie
kwestie jak klarować dane, czyli generalnie rzecz biorąc podstawowe rzeczy,
z których oczywiście będziemy również tutaj korzystać.
Całą strukturę serwera również tutaj Ci zaprezentuję oraz opowiem o niej.
Natomiast gdybyś był już po tym pierwszym
kursie, to z pewnością miałbyś jasny obraz na to, co będziemy tutaj robić.
Przejdźmy teraz do Worda, gdzie skonfigurujemy sobie cały nasz nowy
serwer, czyli środowisko, na którym będziemy odpalać naszą aplikację książek.
No więc na początku musimy zainicjować paczkę npm init.
Te wszystkie opcje możemy pominąć.
Nie są one dla nas istotne.
I teraz nasz pakiet Jackson się utworzył
i będziemy tutaj instalować odpowiednie paczki, których będziemy potrzebować.
Na początku jednak skonfigurujemy komendę
scripts do startowania naszego serwera, a więc dajmy komendę start.
I będziemy tutaj odpalać za pomocą noda plik index.
Musimy ten plik sobie teraz stworzyć.
Więc dodajmy nowy plik.
Będzie to plik index.
Jest.
I na początek może po prostu wrzućmy tutaj
konsolę loga, aby zobaczyć, że nasz serwer działa.
I teraz w konsoli musimy wykonać naszą komendę script czyli npm start.
Jak widzisz nasz serwer działa.
Jest tutaj konsola Hello World, więc możemy teraz przejść i
zainstalować sobie kolejne rzeczy, których będziemy potrzebować do developmentu.
Przede wszystkim będziemy potrzebować biblioteki, która pozwoli nam na
podglądanie naszych zmian live bez potrzeby odpalania tego npm.
Start za każdym razem.
Aby to zrobić użyjemy biblioteki o nazwie Demon.
Będzie ona po prostu nam młodsza na zmiany
i ładować nasz serwer za każdym razem, kiedy zmienimy jakiś plik.
A więc przejdźmy do kod i zróbmy npm install z flagą minus D.
Będzie to oznaczało, że będzie to dostępne
tylko i wyłącznie dla developmentu i wpiszmy na.
Paczkę na odmianę mam już zainstalowaną.
Chciałbym jeszcze teraz dodać kilka
kolejnych paczek, abyśmy mogli tutaj używać syntax ES6.
Będziemy chcieli dodać w takim razie Babel.
A więc zróbmy jeszcze raz npm install.
Również z flagą D.
I tutaj zainstalujemy sobie Babel, kolor
Babel, weselej Babel
oraz dodatkowo zainstalujemy jeden preset, który pozwoli nam korzystać z tych
wszystkich dobrodziejstw ES6 czyli Babel preset.
Teraz aby działał poprawnie musimy tutaj dodać plik babel rc.
I powiedzieć mu, którego albo których konfiguracji musi używać.
Będziemy chcieli po prostu używać na razie presetów.
Które dopiero co zainstalowaliśmy, a więc dodajemy tutaj preset.
Będzie to tablica Babel preset and.
Zapisujemy ten plik
i teraz będziemy mogli odpalić nasz serwer i zobaczyć czy nasze zmiany się budują.
Jeszcze raz przypominam odpalamy komendę start, a więc npm start.
I na razie się nie
budują, ponieważ musimy tak naprawdę tą komendę datować, a więc to już nie będzie
nauka, to będzie odmianę, więc po prostu wpiszmy tam.
I musimy mu powiedzieć, że musi wykonać dla nas, czyli zrobić exec Babel.
No i będzie, to jest.
Tutaj będzie flaga Exec.
I teraz wykonajmy MPM start.
No i się nam uruchomił.
Mamy console log i również widzimy, że ten demon nasłuchuje na zmianę.
Teraz jeżeli zrobię jakąś zmianę
to automatycznie mamy również tutaj zalogowana.
A więc mamy Riot i możemy teraz przejść do
konfiguracji właściwego serwera, czyli do konfiguracji serwera Graph Query.
My będziemy na przestrzeni całego kursu korzystać z gra Joga.
Jest to serwer w połączeniu z różnych paczek, czyli np.
Apollo serwera z subskrypcją Playground.
Czyli mamy tutaj wszystkie rzeczy, które będą nam uprzyjemnić naszą naukę,
więc zainstalujemy po prostu joga i za chwilę zgodnie z instrukcją, którą tutaj
mamy o sobie tutaj ten serwer teraz atakujemy.
A więc wyłączmy serwer, zróbmy npm install.
Dobra i teraz możemy przejść do.
I trzeba skopiować ten kod.
I go tutaj wrzucić i możemy teraz używać tego importu ES6.
Nie musimy tutaj używać require dlatego,
że skonfigurowany całego tabela, a więc to możemy usunąć
to, co oznaczają te wszystkie rzeczy jak type, def, resolve, res itd.
Wytłumaczę Ci w kolejnej lekcji.
Natomiast to co jest ważne to to, że tworzymy tutaj nową instancję serwera.
Tutaj startujemy tą instancję i mówimy
kiedy się wystartuje, że wystartował na porcie 4000.
4100 domyślny port na którym startuje joga.
A więc zróbmy npm start.
OK. Nie zapisałem pliku jeszcze raz.
OK.
I teraz mamy informację, że serwer wystartował na porcie 4000.
Możemy przejść do przeglądarki.
I tutaj uruchomić nasz Playground.
Okej, mogę jeszcze troszeczkę powiększyć.
No i mamy gotowe środowisko, a więc wszystko mam skonfigurowane.
Jesteśmy gotowi do nauki.
Także zapraszam Cię do kolejnej lekcji.