GraphQL.cz/Fórum/Napojení GraphQL API na Storybook pro automatizaci dat

Napojení GraphQL API na Storybook pro automatizaci dat

Mám takový dotaz, chtěl bych se zeptat, jak vlastně napojit GraphQL API na Storybook, aby to automaticky načítalo data. Mám nějakou základní představu o tom, jak funguje GraphQL a Storybook, ale nejsem si úplně jistý, jak je propojit. Respektive, jakým způsobem by se dala nastavit integrace mezi těmito dvěma technologiemi. Myslím tím, že když pracuji na komponentách pro UI v Storybooku, tak bych chtěl, aby mi přímo do těch komponentů chodila data z mého GraphQL API. Je to vůbec možné? Jestli někdo máte zkušenosti s tímto typem napojení, byl bych moc rád za jakékoliv tipy nebo návody. Zkoušel jsem hledat na internetu, ale většinou nacházím jen obecné informace o obou technologiích zvlášť a žádný konkrétní postup pro jejich spojení. Také by mě zajímalo, jestli to má nějaký vliv na výkon nebo jestli je potřeba mít něco speciálního nastaveného v GraphQL serveru nebo ve Storybooku? Děkuji za pomoc!

147 slov
1.5 minut čtení
23. 5. 2022
Milena Janečková

Jasně, napojení GraphQL API na Storybook je určitě možný a docela užitečný. Můžeš to udělat tak, že si v Storybooku vytvoříš mocky pro GraphQL dotazy. K tomu můžeš použít nějaký knihovny jako Apollo Client nebo Relay. Ty ti umožní snadno provádět dotazy na API a dostávat data přímo do komponent.

Ve Storybooku si pak můžeš nastavit decorators, které ti umožní obalit tvoje komponenty providerem pro Apollo nebo něco podobnýho, aby měly přístup k datům z API.

Pokud chceš mít i live data, budeš potřebovat mít server běžící, jinak můžeš mockovat odpovědi, což je rychlejší a nemáš s tím tolik práce. Ale bacha na výkon, když to budeš napojovat na skutečný API, může to zpomalit načítání komponent. Takže pokud nemáš moc dat, tak by to mělo být v pohodě.

Jinak co se týče nastavení serveru, tak obvykle není potřeba nic speciálního, prostě aby server odpovídal na dotazy jak má. Takže jestli už máš GraphQL server nastavený, tak by měl fungovat. Zkus si projít nějaké tutoriály na Apollo nebo GraphQL a Storybook, určitě najdeš spoustu užitečných tipů.

175 slov
1.8 minut čtení
11. 12. 2023
Helena Doleželová

No jasně, napojení GraphQL na Storybook je možnost, i když to nebude úplně triviální. V podstatě si musíš nastavit mockování dat pro Storybook, aby ti to nasávalo data z GraphQL API. Tady je pár tipů jak na to:

  1. Apollo Client - Jestli používáš Apollo pro GraphQL, můžeš vytvořit ApolloProvider přímo ve Storybooku. Ten pak obalí tvoje komponenty a ty budou mít přístup ke GraphQL dotazům.

  2. Mocking - Můžeš použít Apollo Client’s MockedProvider, což je super pro testování a vývoj. Místo reálných dat si tam hodíš mockované odpovědi, takže ti to poběží rychleji a bez závislosti na serveru.

  3. Addon - Existují Storybook addony jako Storybook Addon GraphQL, které ti můžou pomoct s integrací, ale musel bys se na to podívat.

  4. Performance - Co se týče výkonu, tak záleží jak často voláš API v komponentách. Jestli máš hodně dotazů při načítání, tak se ti to může trochu zpomalit.

  5. Nastavení na serveru - Na serveru bych řekl, že nic speciálního potřebovat nebudeš, pokud je API funkční a vrací co má.

Takže shrnutí: Použij Apollo s MockedProvider pro rychlé testování v Storybooku a budeš mít data přímo ve svých komponentách.

186 slov
1.9 minut čtení
8. 8. 2023
Olga Kovářová

Napojení GraphQL API na Storybook je celkem fajn, pokud chceš vidět, jak komponenty vypadají s reálnými daty. Můžeš to udělat třeba přes nějakou knihovnu jako Apollo Client nebo Relay. Tady je pár kroků, co bys mohl zkusit:

  1. Nainstaluj Apollo Client: Přidej Apollo do svého projektu pomocí npm nebo yarn. Pak nastav ApolloProvider kolem Storybooku.

  2. Vytvoř GraphQL dotazy: Vytvoř si dotazy, které chceš použít v komponentách. Můžeš je psát jako obyčejné funkce a pak je importovat do svých komponent.

  3. Mock Data: Pokud nechceš spoléhat na reálné API, můžeš si udělat mock data pro Storybook. To ti umožní testovat komponenty bez nutnosti mít server spuštěný.

  4. Decorators: Storybook umožňuje používat dekorátory. Můžeš vytvořit dekorátor, který obalí tvou komponentu v ApolloProvider a poskytne jí data z GraphQL.

  5. Performance: Co se týče výkonu, když budeš volat reálné API, tak to může být pomalejší, než když máš data hardcodovaná nebo mocknutá. Ale záleží na tom, jak často ty data měníš.

Jo a nezapomeň nastavit CORS na svém GraphQL serveru, jinak ti to nebude fungovat z lokálního prostředí.

Takže jo, je to určitě možné a vlastně dost užitečné pro vývoj komponent. Zkus to a uvidíš, jak to pojede.

189 slov
1.9 minut čtení
17. 7. 2024
Tomáš Průcha
GraphQL.cz/Články/Storybook a React-GraphQL intergrated
Dynamic Storybook Stories pro GraphQL API: Jak na to?Objevte strategie pro vytváření dynamických příběhů ve Storybooku, které se napojují na GraphQL API, a posuňte tak vývoj svých komponentů na novou úro...
1000 slov
10 minut čtení
26. 3. 2021
Lucie Kovářová
Přečíst článek
Podobné otázky