GraphQL to język zapytań i środowisko wykonawcze dla API, w którym klient dokładnie określa, jakie dane chce otrzymać. Zamiast wielu endpointów udostępnia jeden, a odpowiedź zawiera tylko żądane pola.
Jak działa GraphQL?
Serwer definiuje schemat typów, a klient wysyła zapytanie opisujące potrzebne pola. Jedno zapytanie może pobrać powiązane dane z kilku źródeł naraz.
GraphQL a REST
GraphQL ogranicza nadmiarowe pobieranie danych i liczbę zapytań, ale jest bardziej złożony w utrzymaniu i trudniejszy do buforowania. REST jest prostszy w typowych zastosowaniach.
Kiedy warto użyć GraphQL?
Gdy różni klienci (strona, aplikacja mobilna) potrzebują różnych danych albo gdy interfejs wymaga wielu powiązanych zasobów. Często stosuje się go w aplikacjach headless.
Przykład zapytania
Zapytanie { post(id: 5) { title author { name } } } zwraca wyłącznie tytuł wpisu i imię autora. W REST ten sam efekt wymagałby często dwóch żądań lub zwrócenia całych obiektów. Mutacje służą do zapisu danych, a subskrypcje do aktualizacji na żywo.