🎯 Definicja

GraphQL to język zapytań do API. W przeciwieństwie do REST (gdzie masz sztywne endpointy typu /users), w GraphQL mówisz dokładnie, czego chcesz: “Daj mi użytkownika ID=1, ale tylko jego imię i listę tytułów postów”.

🔑 Kluczowe punkty

  • No Over-fetching: Nie pobierasz megabajtów niepotrzebnych danych (np. całej historii logowania, gdy chcesz tylko imię).
  • Single Endpoint: Zazwyczaj jeden URL /graphql do wszystkiego.
  • Strongly Typed: Masz schemat (Schema), który mówi dokładnie, co jest dostępne.

📚 Szczegółowe wyjaśnienie

W Ataccama ONE API używamy GraphQL do zarządzania metadanymi. Możesz pobrać listę Termów, zaktualizować Regułę, uruchomić Profilowanie. Query (Pobierz):

query {
  term(id: "123") {
    name
    description
  }
}

Mutation (Zmień):

mutation {
  createTerm(name: "Nowy Termin") {
    id
  }
}

💡 Przykład zastosowania

Mobile App. Ekran profilu potrzebuje tylko Imienia i Avatara. Stare REST API /user/1 zwracało obiekt JSON 50kB (adresy, historia, uprawnienia). Aplikacja muliła. GraphQL: Prosi tylko o name i avatar. Odpowiedź ma 200 bajtów. Aplikacja śmiga.

📌 Źródła

  • GraphQL.org learn.

👽 Brudnopis

  • Stworzony przez Facebooka w 2012, upubliczniony w 2015. Rozwiązuje problem złożonych relacji w API.