DX Heroes logo
#engineering
#api

Co je GraphQL?

Délka: 

4 min

Publikováno: 

9. června 2026

Co je GraphQL?

Co znamená GraphQL

GraphQL je dotazovací jazyk pro API a zároveň běhové prostředí na straně serveru, které na tyto dotazy odpovídá. Místo aby klient volal mnoho pevných endpointů, pošle jediný požadavek, ve kterém popíše přesně, která pole chce. Server vrátí přesně tato data v jediné odpovědi. Vznikl ve Facebooku a dnes je z něj otevřený standard, který se hojně používá ve webových i mobilních aplikacích.

Hlavní myšlenka je, že tvar odpovědi určuje klient. U běžného REST API vrací každý endpoint pevnou strukturu, takže často stahujete víc, než potřebujete, nebo musíte zavolat několik endpointů, abyste poskládali jednu obrazovku. S GraphQL se v jednom dotazu zeptáte na jméno uživatele, jeho poslední tři objednávky a u každé částku, a vrátí se vám přesně tahle pole, vnořená tak, jak jste si řekli.

Lidsky řečeno

Představte si REST jako restauraci s pevnými menu: objednáte si menu číslo 3 a dostanete, co k němu patří, i přílohu, kterou jste nechtěli. GraphQL je à la carte. Kuchyni řeknete na jednu objednávku přesně, která jídla chcete, a přesně to dorazí. Jedna cesta do kuchyně, žádné talíře navíc, nic nechybí.

Kdy se to hodí

  • Mnoho různých klientů, jeden backend. Webová aplikace, iOS aplikace i chytré hodinky potřebují každý jiný tvar dat. GraphQL umožní každému vyžádat si jen to své, bez nových endpointů.
  • Složitá, propojená data. Když jedna obrazovka skládá dohromady uživatele, objednávky, produkty a recenze, stáhnout to vše jedním typovaným dotazem je čistší než řetězit REST volání.
  • Rychle se měnící frontend. Frontendový tým může měnit, co si vyžádá, bez čekání na změny v backendu, dokud data ve schématu existují.

Na co si dát pozor

  • Náročné, hluboce vnořené dotazy. Protože dotaz řídí klient, jediný hluboký požadavek může zahltit vaši databázi. Přidejte limity na složitost dotazu, omezení hloubky a časové limity.
  • Problém N+1. Naivní resolver stahuje související záznamy jeden po druhém. Použijte nástroje na dávkování jako DataLoader, abyste se vyhnuli stovkám skrytých dotazů.
  • Těžší cachování. REST se opírá o jednoduché HTTP cachování podle URL. GraphQL obvykle posílá vše na jeden endpoint, takže potřebujete cachování na straně klienta nebo aplikace.
  • Zbytečný luxus u jednoduchých API. Když máte jednoho klienta a pár stabilních endpointů, REST je jednodušší a GraphQL přidá soukolí, které nepotřebujete.

Související články

  • Co je API? - Širší pojem, ke kterému je GraphQL jedním z přístupů.
  • Zlepšete adopci API s OpenAPI specifikací - Protějšek ze světa RESTu pro popis a přijetí API.
  • Co je to API klíč? - Jak se požadavky, včetně těch GraphQL, ověřují.

Chcete být o krok napřed?

Nenechte si utéct naše nejlepší postřehy. Žádný spam, jen praktické analýzy, pozvánky na exkluzivní eventy a shrnutí podcastů přímo do vaší schránky.