Moderní značkovací jazyky a jejich aplikace

Týden 12 - GraphQL - Hasura, Apollo



Link na stream: vexfalard - Twitch

Vysílání bude probíhat 18.5. v 12:00


Obsah:

  • Úvod do GraphQL
  • Typy
  • Query
  • Mutation
  • Hasura - graphql nad DB
  • Apollo Client - integrace s FE



Seminární projekt

V poslední iteraci přejdeme z REST API na GraphQL. Aplikace bude mít dvě části - serverovou a klientskou.

Na straně serveru

Pro soubory na straně serveru použijte složku messenger-gql.

Začněte instalací Hasury. Poté v případě potřeby definujte své schéma. Po vytvoření schématu přidejte nějaká data a otestujte funkční rozhraní GraphQL API.

Tipy:

Pro novou DB postupujte podle https://hasura.io/docs/latest/graphql/core/getting-started/index.html#get-started-from-scratch

Pro existující DB postupujte podle https://hasura.io/docs/latest/graphql/core/deployment/deployment-guides/docker.html#deployment-docker

Na straně klienta

Budete přecházet ze state managementu na Apollo klienta. Opět začněte jeho instalací.

Pro komponenty načítající data ze serveru vytvořte query. 

Pěkný příklad Typescriptu využívajícího hooky najdete zde.

Hint: 

V kořenovém elementu přidejte ApolloProvider, nakonfigurujte jej s cache a propojte s backendem.

V komponentě definujte que a načítejte data pomocí useQuery pro vaši komponentu. 

Případně můžete použít SWR bez Apolla. Podporuje také jazyk GQL.