Najważniejsze zagadnienia, które musisz znać
5 godz. 53 min · JavaScript · Full-stack i Programowanie
Adam GospodarczykPrzesyłanie oraz transformacja danych to jeden z najważniejszych elementów działania każdej aplikacji. Dobre zrozumienie tego w jaki sposób odbywa się ten proces, daje równocześnie lepsze zrozumienie całej struktury oraz podejmowania decyzji projektowych. W tym kursie znajdziesz lekcje, które pozwolą Ci uporządkować wiedzę na temat protokołu HTTP oraz formatów wymiany danych.
REST oraz GraphQL to nadal nieodłączone zagadnienia tematu wymiany informacji w kontekście aplikacji webowych. Pomimo tego, że ich koncepcje zwykle są bardzo dobrze opisane w różnych źródłach, tak ich wykorzystanie "na produkcji" potrafi sprawić problemy. W szczególności gdy weźmiemy pod uwagę, wyjątki oraz fakt, że nie każda aplikacja będzie wymagać implementacji REST czy GraphQL w 100%. W tym kursie znajdziesz wiele praktycznych wskazówek związanych z pracą z REST API oraz wprowadzenie do pracy z GraphQL.
Niektóre błędy w aplikacji są bardzo pożądane, w szczególności gdy jasno informują użytkownika o tym, co się wydarzyło oraz o tym, co może z tym zrobić. Pomimo tego, że w wielu przypadkach opracowanie komunikatów leży w rękach osoby odpowiedzialnej za copywriting (i/lub ux writing), tak sama implementacja tych komunikatów odbywa się po stronie kodu. Nie rzadko okazuje się, że poprawna i skuteczna walidacja danych oraz obsługa błędów nie jest oczywista w "produkcyjnych" sytuacjach. W tym kursie znajdziesz najczęściej spotykane problemy oraz sposoby ich rozwiązania.
Bazy danych są praktycznie nieodłączną częścią każdej aplikacji. W roli full-stacka prędzej czy później przyjdzie Ci z nimi pracować a nie rzadko nawet projektować oraz rozbudowywać ich struktury. W tym kursie znajdziesz informacje o bazach danych, które pozwolą Ci je zrozumieć oraz od razu poznać użyteczne techniki, które pomogą Ci w pracy z nimi, zarówno na produkcji jak i w środowisku lokalnym czy testowym.
Nie wszystkie informacje w aplikacji są publiczne. Niektóre wprost nie mogą takie być. Z tego powodu niezbędne są sposoby na to aby poznać a potem weryfikować tożsamość użytkownika, by na jej podstawie przydzielać mu dostęp wyłącznie do zasobów, do których odczytywania posiada uprawnienia. Istnieje wiele technik, które umożliwiają zarządzanie dostępem do danych i w tym kursie poznasz najważniejsze z nich. Dowiesz się nie tylko w jaki sposób zabezpieczać dane ale poznasz też najpopularniejsze sposoby na to aby te zabezpieczenia łamać i obchodzić. Mając świadomość takiej możliwości, będziesz w stanie lepiej podejmować decyzje o tym jak projektować dostęp do informacji.
Istnieją problemy charakterystyczne dla niemal każdej aplikacji. W związku z ich powszechnością, istnieje też szereg rozwiązań lub sposobów na to, aby możliwie zredukować ich następstwa. Na przestrzeni lekcji tego kursu zobaczysz wiele przykładów, które pomogą Ci w codziennej pracy a niekiedy nawet, pozwolą uniknąć błędów, których konsekwencje nie zawsze występują natychmiast.
Kurs powstał z myślą o osobach, które chcą rozwijać się w roli full-stack web developera / developerki, przeprowadzając przez najważniejsze zagadnienia z obszaru wymiany, transformacji oraz przechowywania informacji w aplikacji oraz pomiędzy aplikacjami. Jeżeli potrzebujesz zobaczyć szeroką perspektywę tego, w jaki sposób dane przepływają pomiędzy różnymi częściami aplikacji, lub ugruntować swoją wiedzę na ten temat, to ten kurs jest miejscem, którego szukasz.
Na ten moment wiemy już w jaki sposób
wykorzystywać gra w połączeniu np z WG jest.
Jednak chciałbym zwrócić uwagę na coś jeszcze.
Mianowicie jeżeli podajemy
zapytanie, które jest wysyłane w tym przypadku na adres naszego serwera to
widzimy, że mamy tutaj do czynienia z zapytaniem POST, w przypadku którego pilot
ustawiony jest na query gdzie przekazywany jest zapytanie wgl.
Oraz ewentualnie przekazywane są zmienne,
które umożliwiają dodatkowo modyfikację tego co zostanie zwrócone z serwera.
To wszystko oznacza mniej więcej tyle, że jeżeli teraz przełączy się na drugą
aplikację, którą przygotowałem w oparciu o Fetch API to zobaczymy, że faktycznie
możemy połączyć się z serwerem SQL podając po prostu jego adres i wysyłając do niego
zapytanie typu POST z obiektem YYY zawierającym właściwość query, no i
ewentualnie właściwość Variable, która również jest niczym innym jak obiektem
zawierającym dodatkowe zmienne do zapytania.
Zatem jeżeli wkleję sobie tutaj zapytanie pochodzące z tej poprzedniej aplikacji, a
następnie ustawimy sobie tutaj identyfikatory na np.
tablicę z jednym elementem, to w odpowiedzi W tej sytuacji powinniśmy
otrzymać wyłącznie jeden adres email pochodzący od pierwszego użytkownika.
Albo bardziej tablicę z jednym użytkownikiem.
I w tym momencie otrzymaliśmy dwóch
użytkowników, bo oczywiście jest tutaj literówka.
Chodzi o zmienną variable, a nie pojedynczą liczbę.
W tym momencie rzeczywiście otrzymaliśmy
tutaj już tylko jednego użytkownika, a to oznacza, że nasze zapytania działają.
Proponuję jednak, abyśmy zatrzymali się nieco dłużej przy tworzeniu samych zapytań
SQL, ponieważ pomyślałem, że dobrze będzie, jeżeli przejdziemy sobie
przynajmniej przez możliwości jakie mamy do dyspozycji.
Otóż w tym przypadku jesteśmy na stronie gra sql.
Org słabiej gra sql.
Mamy tutaj dostęp do przygotowanego API SQL, w przypadku którego możemy odczytywać
informacje na temat filmów z serii Gwiezdnych Wojen.
Pierwsze co rzuca się tutaj w oczy, to przede wszystkim dokumentacja, która jasno
nam pokazuje jakie elementy możemy wykorzystać w naszym zapytaniu.
I jest to pierwsza wskazówka, którą zawsze musisz brać pod uwagę.
Mianowicie, jeżeli rozpoczynasz pracę z
grafiką celem po stronie klienta, to przede wszystkim skorzystaj z dokumentacji
i zobacz jakie opcje oraz właściwości są dostępne na konkretnych elementach.
Poza tym wiesz już, że do zapytania SQL
możesz przekazywać zmienne, które tak jak zobaczyliśmy przed chwilą przekazywane są
po prostu jako dodatkowy obiekt wysyłany razem z zapytaniem.
I teraz, gdy przyjrzymy się nieco bliżej zapytaniu, które tutaj napisałem, okazuje
się, że jest tutaj kilka dodatkowych elementów.
Pierwszym z nich jest fragment umożliwiający nam stworzenie niczego
innego jak fragmentu zapytania SQL, które możemy wykorzystywać wiele razy.
Po prostu wyobraź sobie sytuację, w której chcesz pobrać wiele razy np.
informacje o filmach, ale z zastosowaniem różnych filtrów.
W takiej sytuacji zamiast powtarzać się,
które pola Cię będą tutaj interesowały, po prostu wykorzystujesz fragment, a
następnie z pomocą trzech kropek odwołujesz się do niego.
Naturalnie nic nie stoi na przeszkodzie, aby dopisać tutaj jakieś dodatkowe pola,
które również zostaną pobrane razem z zapytaniem.
Poza tym w tym konkretnym przypadku,
pomimo tego, że odwołujemy się do filmów, tak naprawdę przekazujemy tutaj zmienną do
naszego zapytania, którą wykorzystujemy do zawężenia wyników.
Jeżeli tej zmiennej nie wykorzystaliśmy w
naszym zapytaniu, no to w tym przypadku w związku z tym jak zaprojektowany jest
serwer nie będziemy w stanie pobrać żadnych informacji.
Ale jeżeli już wykonamy drugie zapytanie,
które nie wymaga od nas podawania identyfikatora, no to od razu mamy tutaj
informację na temat dwóch filmów, ponieważ dokładnie o taką liczbę prosiliśmy i poza
tym poprosiliśmy również o informacje, które mogą posłużyć do obsługi nacji.
I teraz zobacz, jak możemy w praktyce wykorzystać te wszystkie informacje.
Przede wszystkim chciałbym dowiedzieć się, co oznacza kursor.
Jeżeli jadę sobie na to pole, otrzymuję
jego opis informujący mnie o roli tego kursora.
I swoją drogą, jeżeli
nie są Ci jeszcze znane, to jest to po prostu format animacji, a konkretnie
właśnie takie generowane ciągi znaków, które można dołączyć do kolejnego
zapytania, aby pobrać następną bądź poprzednią stronę.
W naszym przypadku będzie nas interesowało pobranie kolejnej strony.
W związku z tym interesuje nas end kluczowe.
Taki kursor możemy przekazać do
właściwości after, a następnie ponownie wykonać zapytanie.
Zwróć uwagę na to, jak zmienią się nazwy tych filmów.
No i faktycznie mamy tutaj kolejną porcję
danych jednocześnie i jeżeli interesowały mnie np.
dodatkowe pola w filmie, mógłbym zajrzeć ponownie do dokumentacji, aby dokładnie
zapoznać się z tym, co jest dla mnie dostępne.
No i tak w zasadzie jeżeli chodzi o
pobieranie informacji z gra SQL to by było na tyle.
Jedyne co musisz tutaj wiedzieć to po prostu w jaki sposób możesz przekazywać
zmienne, a następnie też w jaki sposób budować zapytanie.
Ale i tak jak widzisz z pomocą.
Automatycznie wygenerowanej dokumentacji oraz takiego programu.
Jest to niesamowicie intuicyjne.
Musisz jednak wiedzieć, że to w jaki sposób korzystamy z serwera gra w call
może być bardzo specyficzne dla konkretnego serwera.
Działa to dokładnie tak, jak w przypadku REST API, gdzie po prostu od twórców
danego API zależy to, w jaki sposób możemy wchodzić z nim w interakcje.
I teraz przykładowo w przypadku gra SQL
możemy też zastosować filtrowanie, gdzie razem z zapytaniem określamy to, w jaki
sposób chcemy filtrować wyniki, bądź też je np.
sortować. Te wszystkie możliwości oraz to, czy są
dla Ciebie dostępne będzie zależało od implementacji serwera SQL.
To samo ma zastosowanie do mutacji, czyli
sformułowania danych propagowania, czyli pobierania poszczególnych stron czy np.
samej autoryzacji połączenia z serwerem. Cool.
Zatem myślę, że na ten moment jeżeli chodzi o obsługę zapytań gra SQL to tak
naprawdę po stronie klienta masz minimum wiedzy, która pozwoli Ci ewentualnie
zacząć w momencie gdy będziesz mieć z grafiką doczynienia.
Zatem na ten moment to byłoby na tyle.
W związku z tym zapraszam Cię do kolejnej lekcji.