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 +
W tej lekcji pokażę ci jak tworzyć uporządkowane gwary przy pomocy fragmentów
a więc jak widzisz mamy teraz pusty KUL wejdziemy w historię i może zapewnimy
sobie gra w tym gwary Get Busy którego używali w poprzedniej lekcji.
Może tym ostatnim.
Juz ok.
mamy to Gwarek Bucks ale obok jeszcze chciałbym wykonać jedno queer.
I to jest kolejny hit Fair Play Granda którego jeszcze nie pokazywały.
Może kliknij tutaj jeszcze raz historię wybierzmy gadał torba ja idę
i kupuje sobie towary.
Poniżej.
Teraz jak widzisz mamy dwa gwary w jednym programie.
Kiedy będę chciał je wykonać i kliknąć
przycisk Lubię to jak widzisz odpalił się drop down i mogę wybrać albo an.
Czyli anonimowe covery Get Bucks albo autor Ballady
możemy nazwać to covery
Red Box.
I wtedy kiedy klik na egzekucję
to jak widzisz drobną już pokazuje nazwane gwary.
Wybierzmy Get Books i ok braliśmy
autorów oraz książki.
Jeżeli klik autor daje IT to bierzemy autora o danym IP.
Natomiast żebyś zobaczył jedną ważną rzecz
to to że autorzy tak naprawdę mają te same pola.
Nie jest to do końca fajne ponieważ nie lubimy nigdy kopiowania kodu więc to na
czym by nam zależało to stworzenie fragmentu dla tych dwóch gwary.
Możesz sobie wyobrazić aplikację gdzie
będziemy używać tych gwary w różnych miejscach i w jednym miejscu będziemy
pobierać autora a w drugim książki z autorami bo nie chcemy się powtarzać
chcemy mieć jedne wyniesione do jednego pliku i używać zawsze tych samych pól.
Więc skupimy to sobie i stwórzmy tutaj
poniżej fragment fragment tworzymy przy pomocy słowa kluczowego fragment
Teraz podajemy nazwę fragmentu ja nazwę to po prostu autor Field.
I teraz musimy powiedzieć na jakim typie.
Ten fragment musi działać.
Czyli używamy słowa kluczowego.
On i typ to będzie autor.
Czyli to jest dokładnie ten typ który jest w dokumentacji.
Kiedy wejdziemy do dokumentacji to mamy autor i ten fragment będzie kierował i
szukał takich pól w jakich mamy jakie mamy zdefiniowane w dokumentacji.
Więc skupimy te pola mogą użyć
aby ucieszyć ten kod.
I teraz mamy zdefiniowany fragment.
Autor Files
skupimy go i wyrzuci te pola z naszej metody GET autor.
I za pomocą tzw.
spread operatora to jest troszeczkę coś innego.
Natomiast działa podobnie jak spread
operator w JavaScript nie możemy wrzucić cen.
Autor Field i mamy pewność że te pola znajdą się w tym miejscu.
Dajmy jeszcze raz kleryk Get Out torba Jade.
I jak widzisz mamy ten sam wynik czyli autora As It First oraz Last.
Dodatkowo we fragmentach również możemy
używać aliansu czyli jak pamiętasz mówiliśmy że nasza aplikacja może.
Mieć takie tricki że zawsze używa nazwy zmiennych Sanders.
Więc zróbmy tak
że mamy alias FR i ma nas las na nim Sanders kolor.
I tutaj również użyjemy tego autor Field.
Teraz mamy w dwóch miejscach te same pola
kiedy wykonamy jeszcze raz gadał torba jadę to ok.
.
Mamy już dobre wyniki ze zmiennymi Anderson ale kiedy wykonał również Get
Bucks to tutaj również mam takie same pola wtedy możemy mieć pewność że wyświetlający
autora w tym samym komponentu zawsze dostaniemy tak samo sformułowane dane.
Jeżeli jesteśmy już przy fragmentach to
kolejną rzeczą jaką chciałbym Ci pokazać są to fragmenty liniowe czyli tzw.
fragmenty tworzone w locie.
Nasza aplikacja książek nie komplementuje
takich fragmentów i nie jest to zbyt częsta praktyka natomiast chciałbym Ci je
pokazać abyś miał warsztat jak używać takich fragmentów kiedy znajdziesz na niej
Just Cause lub po prostu będziesz je widział żeby się rozumiał.
Ja stworzyłem dla Ciebie jeden przykład Get Person
który komplementuje właśnie takie
fragmenty liniowe aby stworzyć takie fragmenty.
Trzeba mieć interface wspólnych danych.
Jak widzisz tutaj
Union Person resort ma dwa typy MEN oraz numer i te dwa typy implementacją jeden
duży typ person to person mówi o wspólnych danych.
Jest to interfejs natomiast jest to również typ.
Jest to interfejs dlatego że możemy go użyć i zaimplementowane te pola
dla dwóch osobnych typów czyli tak naprawdę Person posiada pola IT
Engineers oraz Last czyli dokładnie te pola które widzisz ale typ MEN który
implementację Person również posiada swoje własne pole faworyt Cars
czyli jeżeli będziemy imprezować na typie person to nie dostaniemy faworyt Cars
natomiast dostaniemy te wspólne pola jeżeli przejdziemy do tłumem
to tutaj mamy również osobną implementację.
Jak widzisz są wspólne pola natomiast poza tym jest również pole faworyt Cloud
ale nie ma już pola faworyt Cars które jest tylko i wyłącznie w typie.
Więc Przejdźmy jeszcze do dokumentacji
i jak widzisz w dokumentacji mamy tutaj
opisane te pola na przykład na tym typie Hero My Name.
Czyli jest wspólne pole name ale dla Android mamy primary Falcon czy dla Human
mamy HTC i są to dwa osobne pola których nie możemy wybrać na Hero ale możemy
wybrać już dla poszczególnych typów które implementacją ten typ Hero z domysłów.
Sprawdźmy jak to działa w praktyce na
naszym typie Get Person więc stwórzmy nową zakładkę.
Możemy ją sobie nazwać fragmenty liniowe i możemy przejść do Get Person.
Czyli stwórzmy gwary
Get Person
i będziemy chcieli pobrać wspólne dane.
Czyli powiedzmy Age First oraz las
żeby to zrobić musimy operować na typie Person
ponieważ jest to typ wspólny dla MEN oraz
moment i oba te typy implementacją Person a więc pobieramy Edge
oraz.
Teraz kiedy wykonamy to gwary dostaliśmy dwa wyniki.
Jest to Hillary Clinton a nas Brad Pitt czyli my oraz numer dwa osobne wyniki.
Natomiast zbieraliśmy na typie Person a nie na amen.
Jeżeli chcielibyśmy pobrać faworyt Cars to według naszej dokumentacji nie możemy
tego zrobić ponieważ typu MEN nie posiada takiego pola
więc jak się można domyślić zrobimy po prostu on.
Czyli teraz nasz fragment liniowy który tworzymy w locie będzie kierował typem
który również poza tymi polami Jefferson wlasnej ma własne pole.
Faworyt Cars a więc wyszukanie World Cars.
Teraz kiedy wykonałem to towary możesz
zobaczyć że mamy faworytkę i listę tych samochodów na typie numer.
Możemy natomiast pobrać inne pole którego z kolei nie posiadamy.
Jest to typ Volt Klaus.
I działa to dokładnie tak samo czyli on Women.
Pobieramy od.
Teraz możemy wykonać to karę dla pewności jak widzisz dostaliśmy faworyt KOD.
Ważne jest aby każdy widział że MEN nie
dostał tego co może dostać ułan ani nie dostała tego co może dostać my
czyli tworzymy w locie różne fragmenty dla różnych typów danych.
Jeden z przykładowych w którym mógłbyś użyć to np.
typ post możesz sobie wyobrazić że masz w
swojej aplikacji komponent który wyświetla posty.
Natomiast może mieć dwa różne warianty.
Wtedy mógłbyś sobie wyobrazić że tutaj
mamy typ post tutaj byśmy mieli post w sam Finger.
Możemy tutaj stworzyć jakieś dodatkowe pole aby wyświetlać
wariant tych postów dla jakichś testów lub coś takiego.
I to jest jedyny który przychodzi mi do głowy na używanie fragmentów liniowych.
Natomiast zdarza się to więc jest ważne abyś wiedział z czym to się je.
I to już wszystko w tej lekcji.
A ja już teraz zapraszam Cię do kolejnej
lekcji w której opowiem ci jak zaimplementowane agitacja oraz filtry.
Gotowe query z fragmentami · 4 min
query getBooks {
getBooks {
id
title
authors {
..authorFields
}
comments {
content
}
}
}
query getAuthorById {
getAuthor(id: "d0f001ec-a71c-4631-aa2d-500e3325c718") {
...authorFields
}
}
fragment authorFields on Author {
id
first_name: firstName
last_name: lastName
}