English
Français
Deutsch
日本
Español
Nederlands
Dansk
GraphQL to sposób komunikacji z interfejsami API stworzony jako alternatywa dla REST.
GraphQL to język zapytań dla interfejsów API, który został opracowany przez Facebooka i jego społeczność programistów. Swoją premierę miał w czerwcu 2018 roku i jest obecnie dojrzałą technologią, która zyskała szerokie uznanie na rynku. W rezultacie jest dobrze rozpoznawalna i wiele firm decyduje się na jej wdrożenie. Aby powiedzieć Ci, czym się różni, musimy przyjrzeć się temu, co jest nadal najczęściej używane: REST i na czym się opiera. GraphQL jest często nazywany następcą REST, ponieważ rozwiązuje jego kluczowe problemy. Jak zapewne wiesz, opiera się on na czymś w rodzaju starego projektu systemu. Zgodnie z nim, każdy model danych jest dostępny pod osobnym adresem. Mając na przykład sklep internetowy z odzieżą, możemy mieć adresy dla koszyka, magazynu, produktów i wielu innych.
W rzeczywistości liczba takich adresów nigdy nie będzie mała, wręcz przeciwnie, będzie rosła wraz z rozwojem systemu. Pamiętaj, że dla prawie każdego adresu musisz utworzyć zestaw wywołań do obsługi żądań get, post, put lub delete. Spowoduje to dużą liczbę adresów do utrzymania i jeszcze większą liczbę wywołań potrzebnych do uzyskania danych. GraphQL działa w zupełnie inny sposób. Mamy tylko jeden adres, jedno źródło prawdy, z którego możemy żądać danych. To, co otrzymamy, zależy wyłącznie od nas i od tego, jak skonstruujemy zapytanie.
Kluczową cechą GraphQL jest możliwość wykonywania elastycznych zapytań, w ramach których definiujemy dokładnie jakie dane z API chcemy uzyskać. Dodatkowo język ten daje możliwość tworzenia zagnieżdżonych zapytań, co sprawia, że w tych obszarach zyskuje on jeszcze większą przewagę nad API REST.
Jednym z punktów podobieństwa między REST i GraphQL jest niezależność od platformy lub języka programowania. Inną wspólną cechą jest idempotencja tych samych operacji. Zarówno w przypadku architektury REST, jak i GraphQL, operacje takie jak pobieranie, modyfikacja lub usuwanie mogą być używane wielokrotnie bez zmiany wyniku.
Podstawowymi elementami GraphQL są: mutacja:
GraphQL używa własnej składni: SDL lub Schema Definition Language. Jest on używany do określenia schematu API oraz jego typów i pól. Typy są deklarowane za pomocą słowa kluczowego type, a pola są dodawane w nawiasach dla każdego typu obiektu.
Chociaż GraphQL wciąż nie jest tak popularny jak REST, jego społeczność szybko rośnie. Ma już wielu głównych użytkowników, takich jak GitHub, Netflix, PayPal czy Shopify. To tylko kwestia czasu, zanim pojawi się ich więcej.