YouTalent® – internetowa społeczność talentów

Jak używać GraphQL do bardziej efektywnego pobierania danych w aplikacjach internetowych

GraphQL to sposób na łatwe szukanie danych, który wymyślili ludzie z Facebooka w 2015 roku. Teraz zarządza nim Linux Foundation od 2018 roku. Dzięki niemu możesz szybko dostać to, co potrzebujesz z internetu, bez zbędnych rzeczy.

W przeciwieństwie do starego sposobu, zwanego REST, GraphQL używa jednego punktu dostępu. Pozwala to na mniej pracy przy pobieraniu danych. Ważne pojęcia w GraphQL to Typ Query, Schema i Resolver.

Firmy jak GitHub, Shopify, i Twitter też tego używają. To pokazuje, że GraphQL jest dobrym narzędziem dla różnych aplikacji internetowych. Zacząć z GraphQL nie jest trudno.

Potrzebujesz tylko wybrać odpowiednią ramę pracy, zainstalować potrzebne biblioteki jak express-graphql i nauczyć się paru ważnych rzeczy, takich jak projektowanie schematu czy optymalizacja zapytań.

Teraz przeczytasz, jak to wszystko działa i jak możesz używać GraphQL w swoich projektach. Czytaj dalej!

Co to jest GraphQL?

Mężczyzna pracuje nad stroną internetową w biurze coworkingowym.

GraphQL to język zapytań stworzony przez ludzi z Facebooka w 2015 roku. Umożliwia on szybkie i łatwe pobieranie danych z internetu. Dzięki GraphQL, możesz dokładnie zapytać o to, czego potrzebujesz, nie mniej i nie więcej.

To sprawia, że Twoje aplikacje działają szybciej i są bardziej wydajne.

GraphQL zmienia sposób, w jaki prosimy o dane. Prosto, szybko, i na temat.

Od 2018 roku, rozwój GraphQL jest pod opieką Linux Foundation – organizacji non-profit. Fakt ten podkreśla ważność i wpływ GraphQL na świat programowania. Firmy takie jak GitHub, Shopify czy Twitter już korzystają z GraphQL do zarządzania swoimi interfejsami programowania aplikacji (APIs).

W 2018 roku GraphQL stał się otwartym standardem. Teraz przejdźmy do podstawowych koncepcji GraphQL.

Podstawowe koncepcje GraphQL

GraphQL to język zapytań do API, który pozwala klientowi określić dokładnie jakie dane potrzebuje. Wykorzystuje schemat do zdefiniowania, jakie dane można pobrać.

Typ Query

Typ Query pomaga ci wyciągnąć dokładnie to, co potrzebujesz z bazy danych. To jak magik wyciągający królika z kapelusza, ale zamiast królika, masz dane. Wyobraź sobie, że chcesz informacje tylko o nazwie i cenie produktu, nie całą resztę.

Dzięki Typ Query, robisz zapytanie i voilà – dostajesz tylko te dwie rzeczy. Proste, prawda?

Z tym typem, tworzysz zapytanie i decydujesz, które dane chcesz. Nie ma zbędnych informacji. Jak sprzątanie w szafie – zostawiasz tylko to, co naprawdę ważne. Do tego, możesz “wchodzić głębiej” – pytać o szczegóły, takie jak kolory dostępne dla produktu bez zagłębiania się w nic nieznaczące detale.

Masz narzędzia jak Apollo Server i GraphQL Playground, które czynią pracę z Typ Query prostsza. To jak mieć supermoce w świecie programowania. Z ich pomocą łatwiej manipulujesz danymi i tworzysz efektywne aplikacje internetowe oraz mobilne.

Więc jeśli chcesz być jak ten magik danych, zacznij eksperymentować z Typ Query i narzędziami, które sprawią, że praca stanie się przyjemność.

Schema

Schemat w GraphQL to jak mapa Twoich danych. Wyobraź sobie, że każdy typ danych to kraj, a pola to miasta. Schemat pokazuje, które “kraje” mają jakie “miasta”. Dzięki temu łatwiej znajdziesz to, czego szukasz.

Serwer GraphQL używa schematu, żeby wiedzieć, jakie dane może Ci pokazać. Możesz też definiować enumy. To jakby lista zakupów z tylko tymi rzeczami, które możesz kupić.

Z schematem w GraphQL, wiesz dokładnie, gdzie jesteś i dokąd idziesz… bez zbędnych zakrętów.

Teraz porozmawiamy o Resolverach. To oni mówią schematowi, skąd wziąć dane dla każdego pola.

Resolver

Resolver to funkcja, która wypełnia dane dla konkretnej części w GraphQL. Apollo Server automatycznie ustala domyślną funkcję resolver, jeśli nie zdefiniowano jej dla danego pola.

Resolvery są określone w obiekcie JavaScript, zwanej mapą resolverów. Kluczowe argumenty resolverów to: parent, args, contextValue i info.

Dzięki resolverom możesz precyzyjnie kontrolować sposób, w jaki dane są pobierane z źródeł danych. Możesz dostosować zachowanie aplikacji na różnych poziomach danych za pomocą resolverów.

Jest to kluczowa część w tworzeniu bardziej efektywnego sposobu pobierania i wykorzystywania danych w twojej aplikacji internetowej.

Zalety GraphQL w porównaniu do REST

GraphQL pozwala efektywniej przesyłać dane w porównaniu do REST, umożliwiając zapytania ad hoc, eliminując nadmiarowe dane i wymagając mniejszej liczby żądań sieciowych. Zachęcam do lektury dalszej, aby dowiedzieć się więcej.

https://www.youtube.com/watch?v=QtOo2_j3CbU

Efektywność transferu danych

GraphQL ma sporo zalet w porównaniu z REST, zwłaszcza jeśli chodzi o efektywność transferu danych. Ponieważ GraphQL umożliwia elastyczne zapytania, minimalizuje problem nadmiaru lub niedoboru danych.

Co więcej, API GraphQL obsługuje wszystkie operacje za pomocą jednego punktu końcowego, co upraszcza transfer danych. Warto jednak pamiętać, że REST posiada wbudowane buforowanie, co poprawia wydajność transferu danych, podczas gdy GraphQL wymaga niestandardowych strategii buforowania, co może wpłynąć na efektywność transferu danych.

Dlatego właśnie warto rozważyć wybór GraphQL w celu zoptymalizowania wydajności aplikacji internetowej. Pozwala to lepiej zarządzać danymi oraz przyspiesza transfer danych.

To ważne zwłaszcza dla aplikacji mobilnych i interfejsów API, gdzie efektywność transferu danych ma kluczowe znaczenie. Zastanów się więc, jak możesz wykorzystać te zalety w praktyce w swoim projekcie.

Teraz przejdźmy do praktycznych zastosowań GraphQL w aplikacjach internetowych, gdzie będziemy omawiać konkretnie jak platformy społecznościowe czy e-commerce mogą skorzystać z tych zalet.

Ale najpierw poznaj kroki do rozpoczęcia pracy z GraphQL.

Zapytania ad hoc

Chciałbyś wiedzieć, co oznacza “zapytania ad hoc”? No więc, to samo pytanie. To takie zapytanie, które możesz wykonać w każdej chwili, gdy tylko chcesz. Nie musisz go planować z wyprzedzeniem ani spełniać wielu wymagań.

Dzięki GraphQL, możesz tworzyć i wykonywać takie zapytania do wielu źródeł danych jednocześnie. To oznacza, że masz kontrolę nad danymi, które chcesz uzyskać, bez zbędnego pobierania albo niedostatecznych informacji.

Klientów GraphQL pozwala to na precyzyjne określenie wymaganych danych, co redukuje problemy związane z nadmiarowym lub niewystarczającym pobieraniem danych….

Eliminacja nadmiarowych danych

Poprzez GraphQL, można ograniczyć nadmiarowe dane podczas pobierania informacji z serwera. Dzięki schematowi GraphQL można zdefiniować dokładnie, jakie dane chcesz otrzymać, co pozwala na eliminację zbędnych informacji w odpowiedziach.

To sprawia, że aplikacja staje się bardziej wydajna, gdyż nie przesyła nadmiarowych danych. Ograniczenie tych danych wpływa korzystnie na wydajność przesyłania danych oraz przetwarzanie ich.

To ważne, ponieważ zwiększa efektywność aplikacji i zmniejsza obciążenie sieci.

Jedną z zalet GraphQL jest to, że dane są zwracane w formacie JSON, co ułatwia ich przetwarzanie i minimalizuje nadmiarowość. Za pomocą typu Query oraz Resolwerów możesz precyzyjnie określić, jakie dane potrzebujesz, co eliminuje zbędne informacje w odpowiedziach z serwera.

Dzięki temu Twoja aplikacja internetowa może działać szybciej i sprawniej, a użytkownicy otrzymują dokładnie te informacje, których potrzebują.

Praktyczne zastosowania GraphQL w aplikacjach internetowych

GraphQL ma szerokie zastosowanie w różnych rodzajach aplikacji internetowych, takich jak platformy społecznościowe, e-commerce oraz aplikacje mobilne. Może być znacznie pomocne w zarządzaniu danymi i usprawnianiu komunikacji między klientem a serwerem.

Platformy społecznościowe

Dzięki GraphQL, platformy społecznościowe, takie jak Facebook, mogą bardzo efektywnie pobierać dane. To oznacza, że aplikacje społecznościowe działają znacznie szybciej i są bardziej responsywne dla użytkowników.

W porównaniu do tradycyjnych metod API, GraphQL pozwala na pobieranie dokładnie tych danych, których potrzebujesz, eliminując zbędne informacje. Dla programistów aplikacji społecznościowych oznacza to bardziej elastyczne i wydajne zarządzanie danymi.”,.

“Dlatego korzystanie z GraphQL w aplikacjach społecznościowych pozwala na zoptymalizowanie wydajności aplikacji poprzez efektywne zarządzanie danymi. Niższe obciążenia sieci, szybsze czasy odpowiedzi oraz lepsze doświadczenia użytkowników to tylko niektóre z korzyści płynących z użycia tej technologii w platformach społecznościowych.

E-commerce

Przełączając się z platform społecznościowych na e-commerce, zauważysz, że GraphQL minimalizuje nadmiarowe przesyłane informacje, co jest kluczowe w handlu internetowym. To oznacza, że podczas korzystania z GraphQL w aplikacjach e-commerce, możesz pobierać tylko te dane, które są niezbędne – co skutecznie poprawia wydajność aplikacji.

W porównaniu do REST API, GraphQL może być przydatny w projektach e-commerce, pomagając minimalizować ilość przesyłanych danych i zapewniając prostotę, którą docenisz w swoich projektach e-commerce.

Aplikacje mobilne

Używaj GraphQL w aplikacjach mobilnych, by zwiększyć wydajność na smartfonach i tabletach. Dzięki GraphQL, aplikacje stworzone w Flutter są lepiej zoptymalizowane niż te oparte na REST.

To ważne, gdy chcesz zapewnić płynną pracę swojej aplikacji na różnych urządzeniach mobilnych.

Pamiętaj, że efektywność aplikacji mobilnych jest kluczowa, dlatego warto wykorzystać GraphQL do zoptymalizowania pobierania danych.

Jak zacząć z GraphQL

Jeśli chcesz zacząć z GraphQL, pierwszym krokiem jest zapoznanie się z dostępnymi narzędziami i zasobami. Możesz również skorzystać z przykładowych implementacji, które pomogą Ci zrozumieć praktyczne zastosowania GraphQL.

Zanim zaczniesz pracę z GraphQL, warto wybrać odpowiednie narzędzia i przygotować się do procesu implementacji.

Narzędzia i zasoby

Rozpocznij swój projekt GraphQL od narzędzi i zasobów, które będą Ci potrzebne. Oto lista:

  1. Node.js: Środowisko uruchomieniowe JavaScript, które jest potrzebne do uruchomienia serwera GraphQL.
  2. Express: Minimalistyczny framework aplikacji sieciowych dla Node.js, używany do budowy serwera aplikacji internetowych.
  3. express-graphql: Środowisko, które pozwala na łatwe dodawanie interfejsu API GraphQL do aplikacji opartych na Express.
  4. graphql: Biblioteka JavaScript zawierająca implementację silnika GraphQL.

Po zakończeniu instalacji tych narzędzi będziesz gotowy do stworzenia swojego pierwszego serwera GraphQL.

Teraz przejdźmy do praktycznych zastosowań GraphQL w aplikacjach internetowych.

Przykładowe implementacje

Jeśli już zaznajomiłeś się z narzędziami i zasobami GraphQL, teraz przyjrzyjmy się kilku przykładowym implementacjom tego języka programowania. Poniżej znajdziesz praktyczne przykłady wykorzystania GraphQL w różnych obszarach aplikacji internetowych:

  1. Platformy społecznościowe:
    • Wykorzystanie GraphQL do zarządzania postami, komentarzami i relacjami między użytkownikami.
    • Szybkie pobieranie danych profilu użytkownika i ich powiązań.
  2. E-commerce:
    • Usprawnienie procesu wyszukiwania produktów poprzez efektywne zapytania GraphQL.
    • Optymalizacja interakcji klienta poprzez szybkie pobieranie informacji o produktach i koszyku zakupowym.
  3. Aplikacje mobilne:
    • Zwiększenie wydajności aplikacji poprzez minimalizację transferu nadmiarowych danych.
    • Elastyczne tworzenie zapytań odpowiadających specyficznym potrzebom aplikacji mobilnych.

Te przykłady ukazują elastyczność i wszechstronność GraphQL w różnych kontekstach aplikacyjnych, co pozwala na efektywne dostosowanie tego języka programowania do konkretnych wymagań projektowych.

Najlepsze praktyki przy korzystaniu z GraphQL

1. Projektujesz schemat, aby był czytelny i spójny – to ułatwi zrozumienie struktury Twojego API.

2. Optymalizujesz zapytania, aby minimalizować liczbę wymaganych operacji bazodanowych.

Projektowanie schematu

Schemat w GraphQL decyduje, jak dane są zorganizowane i jak one się komunikują. Typy w GraphQL determinują wygląd danych na serwerze. Projektowanie schematu jest istotne, ponieważ oddziałuje na to, jak Twoja aplikacja działa.

Narzędzia takie jak Apollo Server mogą Ci pomóc w tej pracy.

Znając typy w GraphQL, wiesz, jak dane są ułożone na serwerze. Projektowanie schematu polega na ustaleniu, jak te dane się komunikują. Apollo Server to jedno z narzędzi, które Ci w tym pomoże.

Schema to plan danych na serwerze. Dzięki typom GraphQL wiesz, jak dane są zorganizowane na serwerze. Warto zadbać o projektowanie schematu, by Twoja aplikacja działała wydajnie.

Apollo Server wspiera ten proces, co może być pomocne.

Optymalizacja zapytań

Kiedy chcesz, żeby Twoje zapytania działały szybko i były wydajne, musisz skupić się na optymalizacji. Chodzi o to, że im bardziej zoptymalizowane będą Twoje zapytania, tym lepiej będzie działać Twoja aplikacja.

Aby zoptymalizować zapytania w GraphQL, możesz zacząć od projektowania swojego schematu tak, aby był jak najbardziej prosty i efektywny. Pamiętaj, że zbyt złożony schemat może spowolnić Twoje zapytania i spowodować problemy wydajnościowe.

Innym sposobem na optymalizację zapytań jest cacheowanie danych. Kiedy cache’ujesz dane, zapamiętujesz wyniki poprzednich zapytań. Dzięki temu, gdy użytkownik ponownie wywoła to samo zapytanie, nie musisz ponownie odpytywać bazy danych.

To pozwala zaoszczędzić czas i zasoby serwera. Cache’owanie danych to kluczowy element optymalizacji zapytań w GraphQL.

Cacheowanie danych

Tutaj jesteś w punkcie, w którym dowiesz się o sposobach, aby zoptymalizować swoje zapytania w aplikacjach internetowych. Teraz skupimy się na cacheowaniu danych. W GraphQL brakuje unikalnych identyfikatorów URL, co utrudnia budowanie pamięci podręcznej.

Jednak najlepszą praktyką jest udostępnienie globalnie unikalnego identyfikatora, na przykład przez pole “id”. Identyfikatory mogą być wykorzystane do identyfikacji obiektów w bazach danych i pamięciach podręcznych.

Dzięki temu możesz efektywniej zarządzać danymi i zapewnić szybsze odpowiedzi na zapytania.

Cacheowanie danych jest istotne dla optymalizacji wydajności aplikacji internetowych opartych na GraphQL. Dzięki odpowiedniemu wykorzystaniu unikalnych identyfikatorów i pamięci podręcznej, możesz zredukować czas ładowania danych i poprawić ogólną responsywność aplikacji.

Teraz masz klucz do zoptymalizowania swoich zapytań i usprawnienia pracy aplikacji internetowych.

Bezpieczeństwo w GraphQL

Bezpieczeństwo w GraphQL jest kluczowe dla ochrony Twoich danych oraz aplikacji. Zapoznaj się z najlepszymi praktykami dotyczącymi autoryzacji, uwierzytelniania i kontroli dostępu, aby zabezpieczyć swoje interfejsy API.

Przeczytaj więcej, aby poznać wszystkie szczegóły dotyczące bezpieczeństwa w GraphQL.

Autoryzacja i uwierzytelnianie

Autoryzacja i uwierzytelnianie są ważnymi elementami bezpieczeństwa w GraphQL. Autoryzacja określa, czy użytkownik ma uprawnienia do wykonania danej czynności lub dostępu do określonych danych.

Warto pamiętać, że logika autoryzacji powinna być umieszczona w warstwie logiki aplikacji, a nie bezpośrednio w GraphQL. Dzięki temu możesz zapewnić spójność i kontrolę dostępu do danych w swojej aplikacji.

Ponadto, dzięki funkcjom uwierzytelniania GraphQL możesz zagwarantować, że użytkownicy widzą tylko te dane, do których mają dostęp zgodnie z ich uprawnieniami. Jest to kluczowe dla zabezpieczenia Twojej aplikacji internetowej przed nieuprawnionym dostępem do informacji.

Dlatego prowadzenie autoryzacji i uwierzytelniania w sposób odpowiedzialny jest niezmiernie istotne dla zapewnienia bezpieczeństwa Twojej aplikacji.

Wprowadzenie tych mechanizmów bezpieczeństwa pozwala zapobiec potencjalnym naruszeniom danych oraz zwiększa zaufanie użytkowników do Twojej aplikacji internetowej. Dzięki autoryzacji i uwierzytelnianiu w GraphQL możesz spokojnie rozwijać swoją aplikację, wiedząc, że dane są bezpieczne i chronione.

Kontrola dostępu

Kiedy upewnisz się, że tylko autoryzowani użytkownicy mają dostęp do określonych zasobów, dbasz o bezpieczeństwo aplikacji. Ważne jest, aby używać JSON Web Tokens (JWT) do zarządzania dostępem.

Analiza kosztów zapytań jest kluczowa dla kontrolowania dostępu. Pamiętaj, że utrzymanie listy zatwierdzonych operacji zwiększa bezpieczeństwo.

Wnioski i przyszłość GraphQL

Nadszedł czas, aby podsumować to, co wiemy o GraphQL. Ta technologia umożliwia wydajne przetwarzanie danych w aplikacjach internetowych poprzez precyzyjne zapytania. Dzięki niej możemy redukować ilość przenoszonych informacji, co ma istotne znaczenie dla wydajności.

Ponadto, GraphQL ma ogromny potencjał do integracji różnych systemów, a to oznacza, że możemy korzystać z różnych źródeł danych, co jest ważne przy projektowaniu aplikacji.

Co przyniesie przyszłość GraphQL? Już teraz widać, że staje się on coraz bardziej popularny w świecie aplikacji internetowych. Dzięki nowym implementacjom oraz wsparciu ze strony większych platform (jak np.

Facebook), możemy spodziewać się dalszego rozwoju tej technologii w przyszłości. Zatem warto być na bieżąco z tym tematem i trzymać rękę na pulsie, aby nie przegapić ewolucji GraphQL.

Podsumowanie

Zastanawiasz się, jak wykorzystać GraphQL do bardziej efektywnego pobierania danych w aplikacjach internetowych. Kluczowe koncepcje GraphQL, takie jak Typ Query, Resolver oraz Schema, mają znaczący wpływ na optymalizację danych.

Dzięki GraphQL możesz pobierać tylko niezbędne informacje, co jest kluczowe dla wydajności w aplikacjach mobilnych. Nie bez powodu GraphQL jest uznawany za następcę REST – jego elastyczność i efektywność są niezaprzeczalne.

Projektowanie schematu, optymalizacja zapytań oraz cacheowanie danych to kluczowe best practice przy korzystaniu z GraphQL. Pamiętaj, żeby zgłębić dostępne kursy online i narzędzia, aby lepiej zrozumieć i wykorzystać potencjał GraphQL.

Krok po kroku do wdrażania aplikacji internetowych: Opcje hostingu i narzędzia (Link do przewodnika krok po kroku)

Aby wdrożyć swoją aplikację internetową, musisz wybrać odpowiedni hosting i narzędzia. Oto krok po kroku przewodnik:

  1. Wybierz platformę chmurową do hostingu aplikacji, na przykład Amazon Web Services (AWS) lub Microsoft Azure.
  2. Skonfiguruj serwer aplikacji przy użyciu Node.js dla elastycznego i wydajnego środowiska uruchomieniowego.
  3. Zapewnij optymalizację bazy danych poprzez wykorzystanie mikroserwisów do łatwiejszego zarządzania danymi.
  4. Utwórz pliki cookies do przechowywania informacji sesji użytkownika na stronie internetowej.
  5. Wykorzystaj interfejs API GraphQL do efektywnego pobierania danych z serwera dla lepszej responsywności aplikacji.
  6. Zadbaj o bezpieczeństwo sieci poprzez autoryzację użytkowników i kontrolę dostępu do zasobów aplikacji.
  7. Użyj narzędzi deweloperskich, takich jak Chrome DevTools, do debugowania i analizy wydajności aplikacji internetowej.

Aby dowiedzieć się więcej na temat wdrażania aplikacji internetowych, zapoznaj się z naszym przewodnikiem krok po kroku obejmującym opcje hostingu i narzędzia do wdrażania.

Często Zadawane Pytania

1. Co to jest GraphQL i jak mogę go używać do efektywnego pobierania danych w aplikacjach internetowych?

GraphQL to język programowania stworzony przez Facebooka, który pozwala programistom na bardziej efektywne pobieranie danych z interfejsem API.

2. Czy GraphQL współpracuje z innymi językami programowania, takimi jak Ruby, Python czy PHP?

Tak, GraphQL współpracuje z wieloma językami programowania, w tym Ruby, Python i PHP. Dostępne są odpowiednie biblioteki, które ułatwiają integrację.

3. Czy istnieje dokumentacja lub kursy online, które pomogą mi nauczyć się GraphQL?

Tak, jest wiele zasobów dostępnych online – od oficjalnej dokumentacji GraphQL po kursy online i blogi programistyczne, które pomogą Ci zrozumieć ten język.

4. Jakie są korzyści związane z użyciem GraphQL w mojej aplikacji społecznościowej?

Użycie GraphQL pozwala na optymalizację bazy danych i lepsze zarządzanie danymi. Możesz na przykład definiować typy danych i korzystać z funkcji “root types” dla bardziej skomplikowanych struktur.

5. Czy mogę używać GraphQL na różnych platformach, takich jak Android czy MacOS?

Tak, GraphQL jest kompatybilny z różnymi platformami, włączając w to Android i MacOS.

6. Czy mogę debugować błędy w GraphQL?

Tak, podobnie jak w innych językach programowania, możesz debugować błędy w GraphQL. Jest to ważne dla utrzymania jakości oprogramowania.

Referencje

  1. https://sii.pl/blog/czym-jest-graphql-i-dlaczego-warto-z-niego-korzystac/ (2023-07-24)
  2. https://www.qtravel.ai/pl/blog/co-to-jest-graphql-i-dlaczego-warto-go-uzywac/ (2024-04-24)
  3. https://it-solve.pl/graphql-z-flutter-jak-uzywac-by-zwiekszyc-optymalizacje-bazy-danych/ (2023-02-10)
  4. https://graphql.org/learn/queries/ (2024-08-15)
  5. https://www.apollographql.com/docs/apollo-server/schema/schema
  6. https://graphql.org/learn/schema/ (2024-08-15)
  7. https://www.apollographql.com/docs/apollo-server/data/resolvers
  8. https://graphql.org/learn/ (2024-08-15)
  9. https://appmaster.io/pl/blog/graphql-vs-rest-ostateczny-przewodnik-po-wyborze-najlepszego-podejscia-api (2023-07-20)
  10. https://rigbyjs.com/pl/blog/graphql-vs-rest-api-in-headless-ecommerce-applications
  11. https://www.holdapp.com/pl/blog/graphql-vs-rest (2024-01-22)
  12. https://aws.amazon.com/compare/the-difference-between-graphql-and-rest/
  13. https://graphql.org/
  14. https://www.youtube.com/watch?v=Q1wWcOrKYL8
  15. https://brylka.net/graphql-w-symfony-elastyczne-i-wydajne-api (2023-03-26)
  16. https://bulldogjob.pl/readme/jak-zaczac-z-graphql
  17. https://cyberacademy.com.pl/jak-sie-nauczyc-graphql-wskazowki-na-poczatkujacych/ (2023-09-24)
  18. https://sii.pl/blog/dobre-praktyki-graphql/ (2023-09-15)
  19. https://www.marcinkwiatkowski.com/pl/graphql-2/kompletny-przewodnik-po-zapytaniach-graphql/
  20. https://graphql.org/learn/caching/ (2024-08-15)
  21. https://graphql.org/learn/authorization/ (2024-08-15)
  22. https://www.apollographql.com/blog/9-ways-to-secure-your-graphql-api-security-checklist (2021-05-26)
  23. https://blog.logto.io/pl-PL/graphql-i-api-rest (2024-06-27)
  24. https://boringowl.io/blog/wdrozenie-aplikacji-node-js-z-uzyciem-koa-js
  25. https://appmaster.io/pl/blog/przewodnik-krok-po-kroku-dotyczacy-tworzenia-aplikacji (2023-09-28)