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 tej lekcji pokażę Ci jak zaimplementować
filtrowanie subskrypcji, więc jesteśmy w Visual Studio Code.
Jesteśmy w tym miejscu, w którym skończyliśmy.
A więc jeżeli zerkniemy sobie
na naszą Scheme, to mamy komentarze i również tutaj mamy subskrypcję.
I to czego będziemy potrzebować to użyć
filtra, aby móc odfiltrować subskrypcję np.
paid książki.
Czyli tak naprawdę jeżeli się nad tym zastanowimy, to nasza Kima będzie
potrzebowała dostawać tutaj jakiś parametr, abyśmy wiedzieli jak
odfiltrować niektóre komentarze i nie pozwolić subskrybentów ich odczytać.
Więc po prostu tutaj dodamy sobie Booka ID.
Będzie to typ ID, czyli w momencie subskrypcji będziemy
musieli tutaj podać ID i wtedy sprawdzimy sobie
czy ten Book ID jest taki sam jak pole Book ID w komentarzu.
OK, więc tak będzie wyglądała.
Natomiast jak to zaimplementować?
Przejdźmy do GitHuba.
I tutaj jeżeli zjedziemy niżej to mamy
taką sekcję jak Filters i możemy tutaj zobaczyć, że mamy
importowaną metodę build filter I ta metoda przyjmuje jako pierwszy
argument funkcję, która zwraca iterator, czyli to co robiliśmy.
Natomiast jako drugi argument przyjmuje
bailout variable i przyjmuje tutaj predykat.
Czyli tak naprawdę możemy tutaj wykonać to
samo, co robimy w funkcjach filter, filter itd.
No więc fajnie, użyjmy tego filter,
natomiast my nie będziemy importować tego z subskrypcją, tylko.
Więc przejdźmy do kodu.
Przejdźmy do subskrypcji Disorder i tutaj u góry importujemy.
Sobie mój filter i to będzie z graph cool.
Joga.
Dobra.
I teraz tak jak mówiłem, to będzie pierwszy argument naszej funkcji.
A więc skopiuj ją.
I wykonajmy mój filtr.
Pierwszym argumentem będzie
iterator, a drugim będzie funkcja, która przyjmuje paletę.
Variable.
I tutaj zwrócić dyktat paleo to jest to co wysyłamy.
Dla naszego komentarza w tym miejscu.
Czyli to jest właśnie ten pilot
i będziemy musieli sprawdzić czy będziemy wtedy mogli się dobrać do buka
bit danego komentarza, który tutaj wysyłamy.
Natomiast wariat Buzz to jest to co
dostajemy dla danej subskrypcji w tym miejscu, czyli to jest właśnie Buzz.
Moglibyśmy to nazwać również argument.
Jeżeli byśmy się chcieli trzymać tego nazewnictwa, które mamy
w wielu ok, więc możemy zrobić tak, że zwrócimy sobie pilot.
I sprawdzimy czy adept.
Book ID jest takie samo jak to, co dostaliśmy w argumentach.
Czyli możemy w zasadzie nawet to zrobić w
taki sposób I to powinno nam działać, dlatego, że
mówimy w naszej subskrypcji, że chcemy się zasubskrybować na tą książkę,
na to konkretne ID, a w tym miejscu chcemy to po prostu filtrować.
Czyli mówimy, że tylko i wyłącznie.
Jeżeli to ID, które podaliśmy podczas subskrypcji jest takie samo jak to, które
ktoś do nas wysłał, to tylko wtedy zwróci dane, więc to powinno nam działać.
Przejdźmy do Play.
Mamy tutaj problem, ponieważ jak widzisz Playground podświetla nam, że on
potrzebuje argumentu, bo my go nie dodaliśmy, więc po prostu zrobimy.
Niech to będzie.
Może np. nie nietakt, żebyśmy zobaczyli, że przy
dodaniu tego komentarza nic się nam nie wyświetli.
Więc weźmy może sobie.
Z bazy danych jakiś drugi identyfikator.
Niech to będzie ten.
Wróćmy tutaj.
Za Subskrybuj ma się tą książkę,
a więc subskrybuj się na tą konkretną książkę i czekamy.
I teraz dodajmy dla tej pierwszej książki jakiś komentarz się dodał.
Natomiast tutaj nic nie mamy.
Czyli jest ok.
Teraz dodajmy dla tej książki komentarz i niech to będzie taki komentarz.
Dobra i zobaczmy czy coś się pojawiło.
Jak widzisz mamy dane, czyli zrobiliśmy filtrowanie
subskrypcji i teraz możemy wskazać pod którą książkę chcemy się podpiąć.
A więc wszystko nam tutaj działa.
I to już wszystko jeżeli chodzi o subskrypcje.
Już teraz zapraszam Cię do kolejnej lekcji.