Sobes.tech
Junior

Co je to GraphQL?

sobes.tech AI

Odpověď od AI

GraphQL je jazyk dotazů pro API a prostředí pro jejich vykonávání. Umožňuje klientovi požadovat přesně ta data, která potřebuje, tím, že definuje strukturu odpovědi. Na rozdíl od tradičních REST API, kde se požadují koncové body, GraphQL posílá dotaz na jeden koncový bod, specifikující požadovaná pole.

Hlavní koncepty GraphQL:

  • Schéma (Schema): Definuje dostupné datové typy, operace (dotazy, mutace, předplatné) a vztahy mezi typy. Píše se v jazyce Schema Definition Language (SDL).
  • Typy (Types): Definují strukturu dat. Mohou být skalární (String, Int, Float, Boolean, ID), uživatelské nebo kontejnery (Seznamy, Non-Null).
  • Dotazy (Queries): Používají se k získání dat ze serveru. Klient uvádí, která pole jsou potřeba, a server vrací pouze tato pole.
  • Mutace (Mutations): Používají se ke změně dat na serveru (vytváření, aktualizace, mazání). Jsou podobné dotazům, ale jasně ukazují na změnu stavu.
  • Předplatné (Subscriptions): Umožňují klientovi přijímat aktualizace v reálném čase, jakmile se data na serveru změní.

Výhody GraphQL:

  • Efektivita: Klient požaduje pouze potřebná data, což snižuje objem přenášených informací a zabraňuje nadbytečnosti (overfetching).
  • Flexibilita: Klient sám určuje strukturu odpovědi, což usnadňuje vývoj a evoluci API.
  • Zlepšený výkon: Efektivní získávání dat může urychlit načítání stránek.
  • Přísná typizace: Schéma zajišťuje jasně definovaný kontrakt mezi klientem a serverem, což usnadňuje validaci a odhalování chyb.

Příklad dotazu:

query GetUser {
  user(id: "123") {
    name
    email
    posts {
      title
    }
  }
}

Příklad mutace:

mutation CreatePost {
  createPost(input: { title: "Nový Post", content: "..." }) {
    id
    title
  }
}