Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Poznaj GraphQL w (trochę więcej niż) 30 minut :)

Poznaj GraphQL w (trochę więcej niż) 30 minut :)

Zastanawiasz się może...?

🤔 Co to właściwie ten GraphQL? 
🤔 Jakie problemy rozwiązuje?
🤔 Kto go używa i dlaczego?
🤔 Czy warto użyć go w swoim projekcie?
🤔 Jak się go dobrze nauczyć?

Zapraszam Cię na prezentację na żywo.

Już za chwilę będziesz wszystko wiedzieć.

✅ Poznasz żargon GraphQL - dowiesz się, m.in. co to są schematy, mutacje, unie, fragmenty i subskrypcje.
✅ Odkryjesz narzędzia ułatwiające pracę z GraphQL.
✅ Dowiesz się w jakich projektach najlepiej go użyć
✅ Powiem Ci jak przekonać szefostwo i zespół do użycia nowej technologii

85977ebfe59c2ee669f2196930f1a701?s=128

Michał Taszycki

February 01, 2021
Tweet

Transcript

  1. None
  2. KIM JESTEM? ▸ Michał Taszycki (@mehowte) ▸ 16 lat doświadczenia

    w programowaniu ▸ Twórca programów szkoleniowych ▸ GraphQL Mastery ▸ Kurs Reacta ▸ Organizator Festiwalu React.js i GraphQL
  3. 1. ŻARGON GRAPHQL 2. DLACZEGO GRAPHQL? 3. DEMO

  4. 1. ŻARGON GRAPHQL 2. DLACZEGO GRAPHQL? 3. DEMO 4. NIESPODZIANKA

    :)
  5. 1. Co to jest GraphQL? 2. Schema 3. Query 4.

    Mutation 5. Dokument 6. Serwer 7. Klient 8. Resolver 9. Root Value 10. Overfetching 11. Underfetching 12. Schema stitching 13. Federacja 14. Subskrypcje ŻARGON GRAPHQL
  6. 1. Graph Query Language - język zapytań i definiowania schematu

    2. Standard GraphQL - Ścisła specyfikacja języka i implementacji klienta i serwera CO TO JEST GRAPHQL?
  7. GRAPHQL SCHEMA

  8. ZAPYTANIA GRAPHQL

  9. MUTACJE GRAPHQL

  10. DOKUMENT GRAPHQL 1. Tekst wysyłany na serwer zawierający conajmniej jedno

    zapytanie lub mutację
  11. 1. Definiuje schemat danych 2. Obsługuje zapytania, mutacje i subskrypcje

    3. Zwraca dane SERWER GRAPHQL
  12. 1. Implementacja w dowolnym języku 1. JS/TS - Apollo Server

    2. Python - Graphene 3. Rust - Juniper 4. Elixir - Absinthe 2. Z zewnątrz wygląda tak samo SERWER GRAPHQL
  13. 1. Zwykle komunikuje się po HTTP 1. POST example.com/graphql 2.

    Może też być częścią lokalnej aplikacji (Gatsby.js) SERWER GRAPHQL
  14. 1. Coś co potrafi komunikować się z serwerem 2. Np

    CURL :) 3. Zwykle są do tego specjalne biblioteki (dla ułatwienia) KLIENT GRAPHQL
  15. 1. Funkcja na serwerze dostarczająca dane dla jakiegoś typu 2.

    Serwery mają domyślne resolvery dla typów wbudowanych 3. Niezbędne przy danych rekurencyjnych RESOLVER
  16. 1. Coś co możemy przekazać do głównego resolvera 2. rzadko

    używane 3. przydatne do prototypowania (pokażę na DEMO) ROOT VALUE
  17. 1. Ściąganie większej ilości danych niż potrzebujemy 2. Powód dlaczego

    GraphQL > REST ;) OVERFETCHING
  18. 1. Ściąganie mniejszej ilości danych niż potrzebujemy 2. Konieczność kolejnych

    zapytań 3. Powód dlaczego GraphQL > REST ;) UNDERFETCHING
  19. 1. Mechanizm dzielenia jednego serwera GraphQL na mikroserwisy 2. Oparty

    na… sklejaniu schematów 3. wychodzi z obiegu :) SCHEMA STICHING
  20. 1. Mechanizm dzielenia jednego serwera GraphQL na mikroserwisy 2. oparty

    na delegacji 3. Obecnie popularny FEDERACJA
  21. 1. Nawiązanie stałego połączenia klienta z serwerem 2. Klient robi

    zapytanie subskrypcyjne i czeka 3. Serwer wysyła dane 4. Klient obsługuje nowe dany gdy tylko się pojawią 5. Często oparte na websocketach SUBSCRIPTION
  22. 1. Co to jest GraphQL? 2. Schema 3. Query 4.

    Mutation 5. Dokument 6. Serwer 7. Klient 8. Resolver 9. Root Value 10. Overfetching 11. Underfetching 12. Schema stitching 13. Federacja 14. Subskrypcje ŻARGON GRAPHQL
  23. JAK PRZEKONAĆ SZEFA?

  24. DLACZEGO GRAPHQL?

  25. DLACZEGO GRAPHQL? 1. Wewnętrzne API (mobilne i webowe apki chcą

    innych danych)
  26. DLACZEGO GRAPHQL? 1. Wewnętrzne API (mobilne i webowe apki chcą

    innych danych) 2. Prototypowanie i startupy (w GraphQL łatwiej wprowadzać zmiany)
  27. DLACZEGO GRAPHQL? 1. Wewnętrzne API (mobilne i webowe apki chcą

    innych danych) 2. Prototypowanie i startupy (w GraphQL łatwiej wprowadzać zmiany) 3. Aplikacja to nie tylko CRUD (w GraphQL łatwiej modelować zdarzenia biznesowe)
  28. DLACZEGO GRAPHQL? 1. Wewnętrzne API (mobilne i webowe apki chcą

    innych danych) 2. Prototypowanie i startupy (w GraphQL łatwiej wprowadzać zmiany) 3. Aplikacja to nie tylko CRUD (w GraphQL łatwiej modelować zdarzenia biznesowe) 4. Integracja danych z różnych źródeł (1 serwer proxy w GraphQL)
  29. DEMO https://codesandbox.io/s/poznaj-graphql-backend-d29nw https://codesandbox.io/s/poznaj-graphql-frontend-0ecmb