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 +
Jesteśmy w miejscu, w którym skończyliśmy w ostatniej lekcji
i chciałbym Ci tutaj pokazać jeszcze jedną rzecz w playgroundzie,
której jeszcze Ci nie pokazałem.
Jest to dodawanie zakładek.
Kiedy klikniemy tutaj plusika, możemy stworzyć sobie nowy widok
z playgroundem
i jest to czysty playground i możemy tutaj zacząć od nowa coś pisać.
Dodatkowo możemy tę zakładkę sobie nazwać.
Ja w tej akcji chciałbym Ci pokazać jak tworzyć oraz jak pobierać relacyjne dane,
więc możemy tą zakładkę nazwać "Pobieranie relacyjnych danych"
i tutaj będziemy pisać query i pobierać relacyjne dane.
W zasadzie już to zrobiliśmy na jednym przykładowe query,
kiedy zbieraliśmy getBooks.
Wejdźmy w historię i mamy tutaj w historii getBooks.
Ja użyję tego query,
możesz zrobić to samo
i jak widzisz tutaj pobieramy autora.
Autorzy są powiązani z książkami, natomiast jeżeli wyobrazisz sobie bazę danych
to tak naprawdę w bazie danych ci autorzy mają osobną tabelę.
Czyli mamy książki oraz autorów w osobnych tabelach,
a za pomocą GraphQL'a i siły tej elastyczności
możemy wybrać w jednym query wszystko czego potrzebujemy.
Kiedy przejdziemy do dokumentacji
i do metody getBooks
tak widzisz jest tutaj pole Author, które jest powiązane z typem
autora czyli jest osobnym typem i osobną tabelę w bazie danych.
I to jest tak naprawdę pobieranie
rewelacyjnych danych więc możemy tutaj jeszcze pobrać coś więcej.
I tak jak w poprzednim przykładzie to działa i mamy książki oraz ich autorów.
Natomiast to co możemy zobaczyć w dokumentacji to to że mamy tutaj również
jeszcze komentarze i również możemy pobrać.
Błąd.
Kolejną rzeczą w tej rundzie jest to że w momencie kiedy popełni się jakiś błąd
czyli tak jak ja teraz pisałem koment ale jeszcze nie podałem żadnych pól
to play gra od podświetlenia to linie na czerwono i teraz kiedy jedziemy tak jak
widzisz jest error i powinniśmy coś wpisać ponieważ jest to nieoczekiwany znak.
W komentarzu możemy wybrać również kilka rzeczy.
Powiedzmy że ja będę chciał wybrać kątem tych komentarzy.
Kiedy wykonamy teraz to covery to jak widzisz pojawiły się również komentarze a
więc braliśmy komentarze w osobnej tabeli w bazie danych
więc braliśmy książki autorów oraz komentarze trzech osobnych tabel z
niesamowitą siłą kul a mamy tutaj pełną listę danych
jak możesz sobie porównać teraz to co pokazywały ci w jednej z pierwszych lekcji
kiedy pokazywały Ci różnice między Reds i gra w LM to tak naprawdę w recepcji
musielibyśmy wykonać trzy różne żądania do serwera.
Natomiast w gra wielu dzięki tej
elastyczności braliśmy autorów oraz komentarze powiązane z książkami.
To jest świetne i dzięki temu gra KUL zyskała na popularności.
Teraz aby ci jeszcze pokazać że to są
prawidłowe dane możemy wrócić do naszego getta.
Torba idę i pobrać autora z którymś z tych idei które zwróciły nam książki powiedzmy
że mamy tutaj takiego autora jak Daniel Goldman.
On ma swoje idee najpierw jeszcze musimy pobrać.
Skupimy idei
i przejdźmy do naszego getta ballady czyli do tej zakładki z poprzedniej lekcji
i oddajmy tutaj ideę.
Jak widzisz został pobrany Daniel Goldman czyli możesz mieć pewność że te dane które
pobierają nasze książki za pomocą relacji oraz te dane które pobieramy bezpośrednio
na polu autor czyli bezpośrednio z naszej tabeli autor w bazie danych zwraca
dokładnie ten sam zestaw danych i to już wszystko w temacie pobierania redakcyjnych
danych a już teraz zapraszam Cię do kolejnej lekcji gdzie pokażę ci jak
stworzyć uporządkowane query przy pomocy fragmentów.
Query z poprzedniej lekcji · 1 min
query getAuthorById($id: ID! = "d0f001ec-a71c-4631-aa2d-500e3325c718") {
author: getAuthor(id: $id) {
first_name: firstName
last_name: lastName
}
}Query - pobieranie relacyjnych danych · 3 min
query {
getBooks {
id
title
authors {
id
firstName
lastName
}
comments {
content
}
}
}