GraphQL
Také známé jako: GraphQL API, dotazovací jazyk pro API
GraphQL je alternativa k REST API, kde si volající v dotazu sám určí, která pole chce dostat zpět. Místo pevně daných odpovědí na pevných adresách posílá dotaz na jedinou adresu a dostane přesně to, co si vyžádal.
Kdy to řešit
Když napojuješ systém, který GraphQL nabízí — často to bývají větší platformy, marketplace a headless řešení. U běžného českého e-shopu je pravděpodobnější, že narazíš na REST.
Jak se liší od REST
U REST je pro každý typ dat vlastní adresa a server rozhoduje, co ti pošle. Chceš-li k produktu i kategorie a varianty, znamená to obvykle několik požadavků.
U GraphQL pošleš jeden dotaz na jednu adresu a v něm popíšeš, co chceš — produkt, jeho varianty a k tomu jen názvy kategorií. Dostaneš přesně to, nic víc.
Praktický dopad: méně přenesených dat a méně požadavků, což se hodí, když jsi omezený limity. Cena za to je složitější ladění, obtížnější cachování a snadnější napsání dotazu, který server neúměrně zatíží.
Nejčastější chyby
- Příliš hluboké dotazy. Vnořování napříč několika úrovněmi vazeb umí server vytížit víc než desítka jednoduchých REST požadavků.
- Očekávání, že to bude jednodušší než REST. Je to jiné, ne jednodušší — a nástroje na ladění jsou méně rozšířené.
- Nasazení kvůli modernosti. Pokud protistrana nabízí REST a data jsou jednoduchá, GraphQL nic nepřinese.
Shoptet a Upgates
Časté otázky
Je GraphQL lepší než REST?
Není lepší, je jiné. Vyplácí se u složitých propojených dat a při omezených limitech; u jednoduchých operací přidává složitost bez užitku.
Nabízejí ho české e-shopové platformy?
Většinou ne. Standardem je REST API. GraphQL potkáš spíš u větších mezinárodních řešení.
Musím GraphQL umět?
Jen když ho protistrana nabízí. Pro práci s běžnými českými platformami stačí REST.
Související pojmy
- REST API – REST API je nejrozšířenější způsob, jak stavět webová rozhraní: každý typ dat má vlastní adresu a operace se vyjadřuje metodou HTTP požadavku. Naprostá většina e-shopových platforem nabízí právě tuhle podobu API.
- API – API je rozhraní, přes které spolu programy komunikují přímo, bez člověka a bez souborů. U e-shopu umožňuje číst a měnit data v reálném čase — vytvořit objednávku, upravit sklad, načíst produkty — na rozdíl od feedu, který je jednosměrný snímek.
- Webhook – Webhook je notifikace, kterou systém sám odešle ve chvíli, kdy nastane určitá událost — vznikne objednávka, změní se produkt, aktualizuje se sklad. Nahrazuje pravidelné dotazování: místo aby se integrace ptala „změnilo se něco?", dozví se to, až když se skutečně něco stane.
- Rate limit – Rate limit je omezení počtu požadavků, které smí jedna integrace na rozhraní poslat za daný čas. Chrání server před přetížením a u e-shopových platforem bývá navázaný na tarif — takže víc integrací znamená dělit se o stejný rozpočet požadavků.
- Napojení ERP – Napojení ERP je propojení e-shopu s podnikovým systémem tak, aby si vyměňovaly data automaticky — typicky objednávky z e-shopu do ERP a sklad s cenami z ERP na e-shop. Realizuje se buď hotovým doplňkem, nebo vlastní integrací přes API.
Další pojmy ze skupiny Feedy & integrace
- APIAPI je rozhraní, přes které spolu programy komunikují přímo, bez člověka a bez souborů. U e-shopu umožňuje číst a měnit data v reálném čase — vytvořit objednávku, upravit sklad, načíst produkty — na rozdíl od feedu, který je jednosměrný snímek.
- API klíčAPI klíč je přístupový údaj, kterým se integrace prokazuje při komunikaci s rozhraním. Určuje nejen to, kdo se připojuje, ale i co smí — a proto by měl mít každé napojení vlastní klíč s minimem oprávnění.
- Datová migraceDatová migrace je převod obsahu e-shopu z jednoho systému do druhého — produktů, kategorií, zákazníků, objednávek a jejich vzájemných vazeb. Nejtěžší na ní nejsou samotná data, ale vazby mezi nimi a pole, která v cílovém systému nemají protějšek.
- Diagnostika feeduDiagnostika feedu je pravidelná kontrola toho, kolik produktů kanál z feedu skutečně přijal, kolik jich zamítl a proč. Je to jediný způsob, jak zjistit, že část sortimentu tiše vypadla — počet položek ve feedu totiž neříká nic o tom, kolik se jich reálně zobrazuje.
- ERPERP je podnikový systém, ve kterém firma vede sklad, objednávky, fakturaci a účetnictví na jednom místě. U e-shopu bývá zdrojem pravdy o skladu a cenách, zatímco e-shop je prodejní kanál — a rozhodnutí, který systém co určuje, je základ jakéhokoli napojení.
- Export produktůExport produktů je vytažení dat z katalogu do souboru nebo rozhraní pro použití jinde — pro srovnávače, pro účetnictví, pro dodavatele nebo jako záloha před hromadnou úpravou. Na rozdíl od feedu nemusí mít pevnou strukturu danou cizím systémem.