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.
Po raz kolejny mam dla Ciebie zadanie.
Chciałbym, abyś dodał mutację, która będzie dodawać nowe komentarze do bazy
danych oraz drugą, która będzie aktualizować istniejące.
Jeżeli jesteś gotowy, żeby to zrobić sam
zapału i teraz wideo, a ja za chwilę już do ciebie wracam z rozwiązaniem.
Mam nadzieję, że udało Ci się wykonać
zadanie i dodawanie komentarzy oraz aktualizacja u Ciebie działa.
Natomiast jeżeli nie to przejdziemy teraz wspólnie przez to i to zrobimy.
A więc przede wszystkim musimy tutaj dodać komentarz.
A więc dodajmy tutaj AP koment i będziemy tutaj musieć dodać jakiś
komentarz input i to będzie typu comment input.
Za chwilę go sobie zdefiniujemy i również tutaj zwrócimy komentarz.
Więc przejdźmy tutaj.
Zróbmy input comment input.
A więc musimy zerknąć sobie w bazę danych co musimy tutaj dostarczyć.
Baza danych ma takie pola jak ID, Bóg, ID, content, ID
i to pole będziemy prawdopodobnie ustawiać jako domyślnie na false.
Możemy założyć, że domyślnie wszystkie
komentarze, które przychodzą są nie zaakceptowane.
Natomiast jeżeli na przykład jakiś
administrator dodaje ten komentarz, no to wtedy ustawimy ręcznie.
A więc przejdźmy teraz do komend input.
I dodajmy tutaj, bo wtedy.
To będzie hit.
Dodamy sobie content, który będzie string oraz pole, które będzie bulionem.
Mulin.
I teraz możemy mu powiedzieć ustaw może to pole opcjonalne.
Możemy tutaj powiedzieć, że on domyślnie ma być w Polsce.
Wtedy każdy nowy komentarz będzie nam się dodawał z tym polem na forum.
W porządku.
Teraz będziemy musieli sobie dodać mutację.
Nasza Ziemia jest już gotowa, jeśli chodzi o dodawanie komentarzy.
Przejdźmy do komend Revolver.
I znowu dodajemy tutaj nowy post pod.
Jutrzejszym prowiant, rewolwer i dodajemy.
I to również będzie funkcja naukowa.
Tutaj nie mamy.
Mamy za to argumenty.
I tutaj tym argumentem będzie ten comment input.
I potrzebujemy jeszcze dostęp do bazy danych, aby ten komentarz zapisać.
Dobra, przejdźmy może jeszcze do BOK
Recover i skopiuj ten kod importowania już ID.
I teraz będziemy tutaj chcieli stworzyć nowe ID dla danego komentarza.
I teraz będziemy
chcieli ten komentarz sobie stworzyć, czyli konkretnie komentarz.
Niech to będzie hit oraz.
Comment input.
Ponieważ wszystkie
pola chcemy tutaj przypisać, nie chcemy wybierać jakiś tam szczególnych pól.
No i teraz możemy zwrócić ten koment comment.
Do DB koment robimy puszcza i wpisujemy ten.
No dobra, fajnie.
Wygląda na to, że powinna to działać.
Jeszcze jedna rzecz to import
tych mutacji w tym miejscu, czyli w naszym indeksie i również tutaj musimy nadać.
Dobra, wygląda, że wszystko jest
zaimportowane, zaimplementowane jeśli chodzi o dodawanie.
Zobaczmy jak to wygląda w Play, gdzie dodajemy nową zakładkę.
Stwórzmy tutaj może.
Koment tutaj pobierz mimo że content.
Jako comment input
dodajmy jako ten gdzie new koment.
Jeszcze tutaj chciałbym wybrać sobie jedną książkę.
Niech to będzie pierwsza książka, czyli skopiuj tę ideę.
I tutaj musimy podać bukiet.
OK, jeszcze troszeczkę formatowanie wykonujemy to najfajniej.
Nowy komentarz się nam dodał,
więc jeszcze raz jeżeli to są stare wyniki, czyli mamy tutaj ten
komentarz, który jest zaaprobowany, bo mamy tutaj filtr.
Więc w zasadzie teraz nam się ten komentarz nie pokaże.
Zmieńmy ten filter na false.
Zobaczmy nowe wyniki
i mamy tutaj nasz nowy komentarz, który jeszcze nie jest zaaprobowany.
Moglibyśmy dodać ten komentarz od razu z
approved, czyli kolejny scenariusz zmienić tutaj to na true.
Dajemy tutaj nie komentarz.
2.2.2.
OK, dodał się Przejdźmy sobie tutaj.
Wykonajmy to jeszcze raz. I ok.
I mamy ten komentarz.
New koment 2.2 2.2 was super.
A więc mamy już zrobione dodawanie
komentarzy, więc teraz zrobimy update tych komentarzy.
I żeby zrobić datowanie tych komentarzy
będziemy musieli oczywiście sami datować schizmę.
Natomiast to co jest ważne to to, że w odróżnieniu od dodawania komentarzy przy
datowaniu będziemy musieli również mieć jakieś ID, by najpierw ten komentarz
zidentyfikować, a później go zaktualizować.
Czyli zróbmy sobie tutaj pole daty.
Dostaniemy tutaj ID
i drugie pole to będzie komendy input i w zasadzie możemy użyć tego samego pola.
Będziemy zwracać tutaj komentarz, więc Skiba powinna być gotowa.
Przejdźmy teraz do komend recorder.
I po tad koment dodajmy nową metodę update komend.
I to będzie arogancja.
Nie mamy pręta. Mamy argumenty.
To będzie IT i input.
Oraz potrzebujemy jeszcze bazy danych.
Więc stwórzmy ID.
To będzie w zasadzie ten kod tutaj.
I teraz musimy przygotować nowy komentarz.
W zasadzie nową treść komentarza.
Ale żeby to zrobić na początku będziemy
musieli jeszcze wybrać sobie ten komentarz po ID.
Czyli będziemy musieli znaleźć index tego komentarza w bazie danych.
Jeżeli podglądamy sobie bazę danych tutaj mamy np.
komentarz o takim ID jest na indeksie pierwszym.
I właśnie w taki sposób będziemy chcieli sobie zidentyfikować te komentarze.
No więc stwórzmy sobie tutaj koment index.
I teraz zróbmy DB Comment index.
Więc użyjmy metody Find index.
I teraz jeżeli komentarz id czyli id tego komentarza
jest równe, ID przekazane mu tutaj, czyli te które przekażemy w argumentach
to zwróci mi index z bazy danych tego komentarza.
I tutaj stwórzmy sobie jeszcze Existing comment.
I niech to będzie tak samo.
DB koment koment.
Index super więc mamy aktualne komentarze i teraz będziemy chcieli sobie dodać
updated koment i ten updated koment będzie się składał z tego co ma existing koment.
Czyli to wybraliśmy z bazy danych oraz
będzie się składał z tego co dodaliśmy w koment input.
A więc musimy jeszcze zaaprobować ten koment input.
Czyli tutaj po prostu skopiowali ten obiekt, a tutaj polami które dodaliśmy w
komendę input nadpisuje to co jest w tym miejscu, więc w taki sposób zaktualizuje
komentarz i jako wynik będziemy mieć updated koment
i to na dodatek koment będziemy chcieli zwrócić, ale jeszcze zanim to zrobimy
będziemy chcieli go zaktualizować w bazie danych.
A więc odwołamy się do tego komentarza
i przypiszemy mu nową wartość czyli updated komentarz.
OK, mamy jakiś błąd.
Zobaczmy co jest nie tak.
A ok.
Zrobiłem tutaj jedną rzecz bezsensowną.
Ten ID jest nam tutaj niepotrzebny, ponieważ nie tworzymy komentarza, więc
jego nie będziemy wykorzystywać, tylko będziemy wykorzystywać ten ID.
Tak zapędziłem się w tworzeniu.
To tu już mamy gotowe ID danego komentarza,
który chcemy zaktualizować i to nam wystarczy.
W porządku.
Czyli mamy komendę update command zrobione.
Przejdźmy do Play
i na przykład darujmy sobie komentarz ten i będziemy chcieli zmienić ten tekst np.
. Czyli stwórzmy tutaj nową mutację.
Update koment.
I teraz tak musimy podać ID
oraz musimy mu podać komendę input czyli pola które chcemy obdarować.
No i tutaj powiem, że chcę dawać tylko kontent.
I niech to będzie.
Może po prostu starting.
I będę chciał zwrócić sobie ten kontent.
Mutacja się wykonała, więc zobaczmy jak to wygląda.
Tutaj pobierz książkę jeszcze raz i Viola!
Komentarz się nam zaktualizował.
I to już wszystko w sekcji Mutacje.
Nauczyłeś się jak dodawać oraz aktualizować dane.
A teraz przejdziemy do sekcji Subskrypcja.