Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

GraphQL vs. REST — kdy přejít na nové API paradigma

21. 03. 2018 1 min čtení CORE SYSTEMSdevelopment

GitHub oznámil GraphQL API v4 a komunita šílí. Je GraphQL skutečně nástupce REST, nebo je to jen hype? Po třech měsících vývoje s GraphQL sdílíme naše poznatky.

Problém s REST

Over-fetching a under-fetching. Endpoint /users/123 vrátí 30 polí, ale mobilní klient potřebuje jen jméno a avatar. Nebo potřebujete uživatele s objednávkami — dva requesty místo jednoho.

Náš pilot: e-commerce katalog

query {
  product(id: "abc123") {
    name
    price
    category { name }
    reviews(first: 5) {
      rating
      author { name }
    }
  }
}

Jeden request, přesně ta data co potřebujete. V REST by to byly 3 endpointy.

Výhody

  • Méně endpointů — jeden /graphql endpoint
  • Silné typování — schema je kontrakt
  • Introspection — auto-generované docs
  • Evoluce bez verzování — přidáváte pole, stará query fungují

Problémy

N+1 queries. Řešení: DataLoader pattern. Caching. GraphQL jde přes POST, HTTP cache nefunguje. Monitoring. Jeden endpoint — musíte parsovat query.

Kdy REST, kdy GraphQL

GraphQL: více klientů s různými potřebami, komplexní datové modely, mobilní aplikace. REST: jednoduché CRUD, file uploads, webhooky, server-to-server komunikace.

GraphQL je mocný nástroj, ne stříbrná kulka

Nenahrazujte REST všude — používejte GraphQL tam, kde jeho výhody převáží náklady na adopci.

graphqlrestapinode.js