Myslitelé

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

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

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.

Marcus Loveland, RP PA Analyst Developer at Maitland Fund Services, píše pro 'IT crowd', dívá se dopředu na aplikační programovací rozhraní (API) a zaměřuje se na architekturu GraphQL API.