Sobes.tech
Junior

Čo je GraphQL?

sobes.tech AI

Odpoveď od AI

GraphQL je jazyk dopytov pre API a prostredie na vykonávanie týchto dopytov. Umožňuje klientovi žiadať presne tie údaje, ktoré potrebuje, definovaním štruktúry odpovede. Na rozdiel od tradičných REST API, kde sa žiadajú koncové body, GraphQL posiela dopyt na jeden koncový bod, špecifikujúc požadované polia.

Hlavné koncepty GraphQL:

  • Schéma (Schema): Definuje dostupné typy údajov, operácie (dopyty, mutácie, odberné služby) a vzťahy medzi typmi. Píše sa v Schema Definition Language (SDL).
  • Typy (Types): Definujú štruktúru údajov. Môžu byť skalárne (String, Int, Float, Boolean, ID), vlastné alebo kontajnerové typy (Zoznamy, Non-Null).
  • Dopyty (Queries): Používajú sa na získanie údajov zo servera. Klient uvádza, ktoré polia sú potrebné, a server vracia údaje len pre tieto polia.
  • Mutácie (Mutations): Používajú sa na zmenu údajov na serveri (vytváranie, aktualizácia, odstránenie). Sú podobné dopytom, ale jasne ukazujú na zmenu stavu.
  • Odberné služby (Subscriptions): Umožňujú klientovi prijímať aktualizácie v reálnom čase, keď sa údaje na serveri menia.

Výhody GraphQL:

  • Efektívnosť: Klient žiada len potrebné údaje, čím znižuje objem prenášaných informácií a zabraňuje nadbytočnému (overfetching).
  • Flexibilita: Klient sám určuje štruktúru odpovede, čo uľahčuje vývoj a evolúciu API.
  • Zlepšenie výkonu: Efektívne získavanie údajov môže zrýchliť načítanie stránok.
  • Prísna typizácia: Schéma zabezpečuje jasne definovanú zmluvu medzi klientom a serverom, čo uľahčuje validáciu a odhaľovanie chýb.

Príklad dopytu:

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

Príklad mutácie:

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