Myslitelé
GraphQL – Změna a zlepšení způsobu, jakým aplikace komunikují

Bude to trvat jen krátkou dobu, než nová generace bude nakupovat kryptoměny a kontrolovat zůstatek svých unit trust v lobby Fortnite mezi hrami. To bude umožněno díky mnoha technologickým pokrokům.
Jedním z nich, o kterém budeme dnes diskutovat, je způsob, jakým se přenášejí data (čtení, aktualizace, přidání/odstranění) mezi aplikacemi a společnostmi, které je vlastní. Architektura aplikací (API) definuje tuto komunikaci dat a jak se tyto standardy vyvíjely, požadavky na zpracování a úložiště dat se staly méně náročnými.
Lídr v balíku z hlediska “lehkého” využití zdrojů je GraphQL, otevřený jazyk dotazování a manipulace dat. Základ jeho ekosystému tvoří jeho specifikace a kolekce nástrojů, které byly vytvořeny kolem něj.
Není to nic nového – čas letí rychle. Facebook ho vyvinul v roce 2012 a použil ho pouze interně pro vývoj mobilních aplikací. V roce 2015 byl “otevřen” a dnes je spravován GraphQL Foundation (https://graphql.org/foundation/), která dohlíží na jeho další vývoj.
Proč o tom píšu teď? Typická mapa technologického přijetí bude následovat následující fáze: 1) koníčky/osobní projekty, 2) implementace napříč několika jazyky, 3) implementace napříč start-upy a malými společnostmi, 4) středně velké společnosti a použití ve vývoji produktů, 5) velké korporace a technologické giganty.
GraphQL dosáhl úrovně 5. V současné době ho používají GitHub, Pinterest, Shopify, Microsoft, a nedávno, od března 2022, i Salesforce.
Při hledání způsobu, jak efektivněji načíst data ze Salesforce, jsem narazil na jejich dokumentaci GraphQL a začal jsem číst a hledat způsoby, jak ho implementovat.
Jak se liší od tradiční REST API?
- Jedna z hlavních výhod je, že s GraphQL můžete dotazovat a získat pouze ta konkrétní data. Pokud chcete pouze dvě pole související s konkrétním klientem, dostanete pouze ta. Tradiční REST API by vám vrátilo všechna pole související s klientem. To by mohlo být 100+ polí. Nyní musíte něco udělat s veškerými daty, která jste nechtěli zpočátku. To se nazývá načítání nadbytečných dat (podnačítání je také problém).
- To výše uvedené činí GraphQL rychlejším než ostatní API metodologie při vrácení dat.
- GraphQL je silně typovaný jazyk, který mezi jiným znamená, že chyby kódu jsou odhaleny před spuštěním programu, ne během něj.
- Byla vytvořena skvělá sada nástrojů kolem GraphQL, která z něj udělala velmi vývojářsky přátelský.
- GraphQL má jediný koncový bod, na rozdíl od REST API, které má několik koncových bodů. To znamená, že všechna vaše data můžete načíst v jediném požadavku.
Dvě strany mince: žadatel (klient) a poskytovatel (hostitel GraphQL)
Doposud jsem se na GraphQL díval z perspektivy “žádosti” dat. Společnost jako Salesforce nebo Microsoft nastavila GraphQL API, které můžete použít k dotazování a manipulaci dat (čtení, aktualizace, přidání).
Pokud bychom chtěli například zahrnout data ze Salesforce související s klienty do klienta portálu, nejefektivnějším způsobem by bylo vyžádat přesné data, která chceme, prostřednictvím dotazu GraphQL z portálu na server Salesforce GraphQL. Získáte přesně ta data, která chcete, bez nadbytečného nebo nedostatečného načítání, a jako výsledek nebude vyžadováno žádné další zpracování nebo úložiště dat.
Druhá strana mince je organizace, která nastavuje architekturu GraphQL, aby klienti měli efektivní metodu pro přístup k datům, která si přejí.
Při budování GraphQL API organizace vytváří model, který integruje všechny systémy do jednoho modelu. To sjednocuje tyto systémy a jednou dokončeno, odstraní složitost podkladového systému. Jakmile je práce dokončena, dotazování dat se stává bezproblémovým prostřednictvím API.
Při srovnávání aplikací nebo poskytovatelů se dívám na funkce, které mi nabízejí k získání mých dat zpět od nich. Nechci muset jim posílat e-maily nebo spoléhat se na rigidní předdefinované zprávy. Chci být schopen “připojit se” k mým datům a dotazovat je flexibilním a včasným způsobem. Pokud se jedná o dvě aplikace/prostředky, které jsou podobně sladěny v jiných srovnávacích bodech, a jedna nabízí buď REST API nebo GraphQL API, určitě si vyberu ten s API.












