Techniki Pracy
2 godz. 14 min · Full-stack i Programowanie
Przemysław NowakSoftware EngineerW GraphQLu niemal wszystko opiera się o zapytania, a dane i ich połączenia możesz sobie wyobrazić jako połączone ze sobą grafy. W kursie zobaczysz jak czytać grafy GraphQLa w oparciu o typy danych oraz nauczysz się jak używać - Query czyli esencji GraphQLa.
Kiedy już będziesz zaznajomiony z tym jak tworzyć zapytania - nauczysz się jak tworzyć dane oraz je aktualizować. Zobaczysz, że z powodzeniem możesz używać filtrów, fragmentów i tworzyć dynamiczne mutację, tak samo jak zapytania. Wszystko to z podpowiedziami oraz wskazaniem dobrych praktyk w codziennej pracy.
Pewnie już nie raz słyszałeś o tzw. real time apps, czyli aplikacjach działających w czasie rzeczywistym, bez potrzeby pytania serwera o dane w interwałach czasowych - ponieważ serwer sam "powie" o tym, że ma dane, a co więcej Ci je przyśle. Tym dokładnie są subskrypcję w GraphQL, możesz z powodzeniem zasubskrybować się do zbioru danych, a kiedy pojawi się coś nowego, serwer wyśle ramkę z nowym contentem za pomocą kanału WebSocket. Tego jak go używać nauczysz się w tym kursie!
Apollo Client zrewolucjonizował sposób w jaki można korzystać z GraphQL w aplikacjach Front-Endowych, poprzez szereg usług dla utrzymania oraz zarządzania cachem po stronie klienta, po wsparcie dla różnych frameworków takich jak React, Angular, Vue. W Kursie nauczysz się jak w szybki i prosty sposób zintegrować serwer GraphQL z aplikacją React przy użyciu Apollo.
Jeżeli jesteś mobile lub web FrontEnd Developerem to z pewnością słyszałeś o wymaganiach dotyczących przynajmniej podstawowej wiedzy z GraphQLa. Nawet firmy, które mają stabilną architekturę opartą o REST API mają w wymaganiach GraphQL ze względu na użycie - czy to na małych mikro serwisach, czy poprzez plany migracji. 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ć.
Kurs ten jest skierowany do wszystkich mobile lub web Front-End Developerów czy też osób, które chciałyby po prostu od czegoś zacząć przygodę z GraphQL. Nie potrzebujesz żadnej kompleksowej wiedzy na temat konkretnej technologii, ponieważ skupimy się nad esencją GraphQLa starając się nie mieszać go z żadnym z języków programowania.
15.3.0 +
Lekcji pokażę ci jak zaimplementowane nacje oraz jak filtrowanie danych
przejdźmy do dołka i mamy tutaj naszą metodę GET Books.
Mamy tutaj również argumenty dla tej metody.
Jednym z tych argumentów jest First oraz offset aby pilnować się po liście książek
musimy podać ile pierwszych wyników chcemy dostać.
Tutaj możesz zobaczyć jest to 10 czyli na początku chcemy pierwszych 10 książek
dostać oraz jaki jest offset czyli zaczynamy od zera.
Gdybyśmy tutaj podali dwa to byśmy zaczynali po dwóch pierwszych książkach.
Pobieranie tych danych.
No to do dzieła stwórzmy Very.
Będzie to get Box.
Wybierzmy może po prostu pole aby to było jak na razie jak najbardziej czytelna.
I teraz musimy podać te dwa argumenty.
Pierwszym jest argument First.
Jeżeli go nie podamy to on jest domyślnie ustawiony na 10.
Natomiast w naszej bazie jest tylko cztery
książki więc powiedzmy że bierzemy tylko dwie książki.
Jest to Integer czyli nie podaję tutaj a
dodatkowo podajemy offset.
I offset wynosi zero czyli zaczynamy od początku OK więc wykonamy towary
i jak widzisz mamy nasze dwie pierwsze książki pobrane.
Teraz wyobraź sobie sytuację że będziemy chcieli się chować.
Czyli użytkownik klika w aplikacje np.
na przycisk druga strona albo dalej.
Wtedy nasze First nadal będzie 2 ponieważ
chcemy wyświetlać dwie książki na stronę natomiast offset również będzie dwa
ponieważ dwa pierwsze wyniki chcemy pominąć.
Kiedy wykonamy gwary dostaliśmy Amazing bug czy oraz Amazing
Bug cztery czyli dwie kolejne książki z naszej bazy danych.
Natomiast nie jest to do końca czytelne oraz nie jest to do końca
dynamiczne dlatego że aby to działało musimy podawać te
wartości w naszym QWERTY
a my chcemy żeby to było dynamiczne czyli stwórzmy tutaj nazwę.
Dlatego QWERTY Get Books.
I tak jak robiliśmy to w przykładzie ze
zmiennymi dodamy tutaj zmienna First oraz offset.
I te zmienne muszą mieć typy.
Czyli będzie to int.
Oraz int.
Domyślnie również podajemy tutaj tak jak
mamy zadeklarowanych argumentów czyli 10 oraz offset to będzie również Intel.
Cerro.
Około.
Teraz możemy podawać te nasze zmienne
w naszym polu gwary Warmia Bus ale na początku jeszcze je.
.
I po wykonaniu Dostaliśmy wszystkie książki ponieważ jak widzisz tę domyślną
wartość jest 10 i zero czyli wszystko jest porządku.
Gdybyś sobie wyobrazić że to są
gwary Get Books dokonujemy w aplikacji to byśmy musieli przekazywać tak jak już
wspomniałem inne zmienne czyli powiedzmy że przekazujemy tutaj na początku werset
który będzie w taki sposób pamiętaj że jesteś Jamesa.
I tu będzie wers 2 offset.
0.
Dostaliśmy dwie pierwsze książki nie dostaliśmy przecinek.
Teraz dostaliśmy dwie pierwsze książki.
I możesz sobie wyobrazić że jeszcze raz
ktoś klika w naszej aplikacji na metodę GET Books.
Wtedy te zmienne się zmieniają a więc podajemy dwa i mamy gotowe.
A więc to jest zaimplementowane agitacja.
Różne są nacje my działamy na świecie.
Często zdarza się również że ktoś działa na tzw.
kursor że ty możesz odczytać w dokumentacji natomiast Słowem wstępu
powiem ci że po prostu zamiast podawać ten offset podajemy idę ostatniej książki
która znajduje się na liście i na tej podstawie pobieramy kolejne.
Teraz pokażę ci jak filtrowanie dane.
Wyobraź sobie że również będziemy pobierać komentarze.
Zgodnie z dokumentacją komentarze mają content.
I pobieramy do tych książek komentarze.
Jak widzisz ta druga książka akurat
komentarzy nie ma więc może po prostu zmieńmy lub wyrzucamy te zmienne aby
dostać na razie wszystkie czyli w wersji 10.
Jak widzisz dwie książki mają komentarze.
Kiedy wejdziemy do dokumentacji i
podejmiemy te komentarze to jak widzisz mamy tutaj a profit
czyli pole które mówi czy dany komentarz został zaaprobowany czy nie.
Również go sobie bierzmy
i ten pierwszy komentarz jest promowany czyli teoretycznie jeżeli byłaby to nasza
aplikacja on powinien się wyświetlać na naszej stronie.
Natomiast ten drugi komentarz jeszcze nie
został promowany czyli on nie powinien się wyświetlać na naszej stronie
i implementacja pobierania komentarzy również pozwala nam tutaj coś zrobić.
Mianowicie mamy argument filtr b.
Możemy tutaj przekazać ten filtr i powiedzieć czy chcemy aby zwrócić tylko
i wyłącznie komentarze które zostały już zaobserwowane czy nie.
Jak widzisz jest to błąd i domyślnie jest to Folc.
Więc dodajmy kolejną zmienną i to będzie filtr.
I on będzie typu bowiem
musiałam tutaj przekazać domyślną wartość.
Niech to będzie forsa.
W porządku teraz możemy ją również przekazać akurat nie do tego
gwary ponieważ Get Books nie wymaga tego interes raperów ale już koment.
Tak więc tutaj jak widzisz już play gra podpowiada wpisuje filtr b.
I przekazuje tą naszą wartość tej zmiennej czyli filtr b.
Teraz kiedy wykonał gwary w zasadzie nic
się nie zmieni ponieważ nadal domyślnie mamy tą wartość jako forsy
natomiast przekażemy ją sobie w tym miejscu czyli awaria Bulls
czyli symuluje sytuację jakbyśmy wykonywali towarów aplikacji.
Aplikacja przekazała taką wartość
i ustawiamy filtr B
czyli tylko zaaprobowany komentarze mogą się pobrać razem z książkami.
Teraz jak widzisz mamy ten pierwszy komentarz ponieważ jego wartość jest
trudna ale już tutaj niżej nie mamy tego komentarza z wartością A+.
I tak działa właśnie filtrowanie danych.
Jak widzisz w tym momencie w naszym dołku
tylko komentarze mają jakąś metodę czy jakiś argument do filtrowania.
Natomiast kiedy będziesz widział inne
metody w innych danych w innych serwerach to warto abyś na to zwracał uwagę ponieważ
dzięki temu jeszcze bardziej elastycznie możesz pobierać
dane natomiast jest to oczywiście zależne od implementacji serwera.
Kolejną rzeczą która nie jest zależna od implementacji serwera są dyrektywy i gra w
KUL ma w dwie wbudowane dyrektywy jest to dyrektywa sklep oraz inne.
Oznacza to że możemy jakieś pole zyski
podać lub jakieś pole zawrzeć naszym gwary.
Aby dodać dyrektywę musimy użyć słowa kluczowego sklep lub Inglot.
Powiedzmy że na początku zajmiemy się
sklep i teraz dodajemy małpka piszemy sklep i otwieramy na was
czyli nasze pole tytuł pobierze się tylko wtedy jeżeli powiem mu IF.
Ja mu powiem Truck czyli pobierze się zawsze.
Teraz jak wykonamy gwary
to w zasadzie się nie pobrało ponieważ jest to Skiba Inglot czyli z kim jeżeli.
Czyli jest wszystko poprawnie.
Tak naprawdę tytuł się nie pobrał ponieważ go kupujemy.
Jeżeli powiemy że nie chcemy go pominąć
i podamy Falls no to wtedy tytuł znowu się pobiera.
Równie dobrze moglibyśmy użyć metody Inglot.
Ona działa bardzo podobnie natomiast w odwrotny sposób.
Teraz jeżeli powiemy Inglot if you
no to tytuł dalej się pobieranie się nie zmieniło.
Jeżeli zmienimy to pobierz.
Jeżeli fałsz to tytuł się nie pobrał.
I taką metodę in Cloud możemy zawrzeć na każdym polu.
Powiedzmy że zabrał ją również na polu comment.
QWERTY jak widzisz teraz dostaliśmy cztery
puste obiekty ponieważ ani tytuł nie może być dodany ani komentarza.
Jeżeli zmienię to komentarze się pojawiły oczywiście.
Przykład Strugi i Falls jest
nie wymierny nigdy w taki sposób raczej nie będziemy pobierać danych
więc oczywiście musimy zrobić to jeszcze bardziej dynamicznie.
Dodajmy kolejną zmienną i nazwijmy ją VIVA Comet
czyli jeżeli widok powie nam że chce dostać książki z komentarzami
czyli to musi być ból to wtedy zwrócimy komentarze.
Domyślnie powiedzmy że zawsze pobieramy książki z komentarzami.
Teraz musimy dodać tą metodę.
Nawet
jeżeli mój koment
jest na true
czyli w tym momencie bierzemy komentarze.
Jeżeli zmienimy koment na for Health czyli możemy również tutaj dodać taką
zmienną i za symulować sytuację z aplikacji.
Po dajmy na Polsce czyli wywołuje takie gwary
Get Books odwołujemy tę metodę tutaj ma domyśle rzeczy czyli ich nie przekazujemy
ale przekazujemy że chcemy filtrowania prawd a potem wiemy że jednak nie chcemy
komentarzy więc jest to troszeczkę nielogiczne.
Natomiast generalnie tak to właśnie działa ten Inglot.
Tak czy siak wykluczy całe pole.
Możemy również jeszcze zaimplementowane IP i powiedzieć że
sklep Baidu
to również będzie burdel
i ustawiony na forsę.
Czyli domyślnie nie chcemy skopiować tego tytułu.
Dodajmy tutaj dyrektywę sklep
IF.
Sklep.
Jeżeli podamy tę zmienną wiatru to wtedy ten tytuł zostanie
pominięty.
Teraz nie został pominięty natomiast teraz kolejna sytuacja kiedy symuluje.
Jakbyśmy kupowali towary w naszej aplikacji już w tamten owej to mówimy
tuczyli np.
w jednym widoku nie chcemy wyświetlać w ogóle tytułów a np.
tylko komentarzy z książek.
Wtedy możemy w taki prosty sposób przekazać zmienną.
Jak widzisz to qr stało się już bardzo dynamiczne no ale dokładnie w taki sposób
powinniśmy tworzyć gwary używać dyrektyw używać filtrów jeżeli są zaimplementowane
po stronie serwera oraz używać zmiennych tak aby mieć jedną część kodu.
Dodatkowo powinniśmy jeszcze użyć fragmentów gdybyśmy pobierali np.
autorów.
I to wszystko jeśli chodzi o góry.
Ja chciałbym Ci gorąco pogratulować ponieważ dowiedziałem się oraz nauczyłem
się całego takiego KOR związanego z gra w LM.
Tak naprawdę jest to najważniejsza część wiedzy gra faul.
Jeżeli przejdziemy do mutacji czy do
subskrypcji to przekonasz się że jest to bardzo podobna składnia.
Jedynie małe syntezy będzie różny natomiast nie będzie to miało wpływu na
całe zrozumienie czym jest gra cool i jak działa.
Ponieważ tak jak nazwa wskazuje jest to
język zapytań więc już teraz zapraszam Cię do kolejnej sekcji.