GraphQL.cz/Fórum/Jaké knihovny doporučujete na validaci dat pro GraphQL?

Jaké knihovny doporučujete na validaci dat pro GraphQL?

Zajímalo by mě, jaké máte zkušenosti s validací dat v GraphQL. Mám na mysli, jaké knihovny nebo nástroje používáte pro zajištění, že data přicházející a odcházející z API splňují určité standardy a pravidla. Vím, že existuje několik možností, ale jsem si jistý, že každá má své klady a zápory. Například slyšel jsem o Joi nebo Yup, ale nevím, jestli se dobře integrují s GraphQL. A co třeba Apollo Server? Má nějaké vestavěné možnosti pro validaci? A co se týče typů – jak nejlépe zajistit typovou kontrolu při práci s GraphQL schématy? Každopádně bych rád slyšel vaše názory. Jaké knihovny vám fungovaly nejlépe? Jaké techniky používáte? Dáváte přednost nějakým konkrétním přístupům nebo raději kombinujete různé metody? V poslední době se tím hodně zabývám a rád bych měl víc informací od těch, kteří to mají za sebou.

135 slov
1.4 minut čtení
16. 9. 2023
Ivana Brychtová

Takže, co se týče validace dat v GraphQL, jasně, máš pravdu, že je několik možností. Já osobně jsem zkoušel Joi a Yup a obě se mi docela líbily. Joi je super, když chceš mít flexibilitu a možnost definovat komplexní schémata. Yup je zase fajn pro jednoduché věci a dobře se integruje s formama, třeba s Reactem. Takže záleží na tom, co potřebuješ.

Co se týče Apollo Serveru, tak ten má vestavěnou podporu pro middleware, takže můžeš klidně použít nějaký vlastní validátor nebo middleware předtím, než se dotaz zpracovává. Můžeš například napsat custom direktivy pro validaci přímo v GraphQL schématu, což je taky rozumná cesta.

Typová kontrola je v GraphQL skvělá už sama o sobě, ale když to kombinuješ s TypeScript, tak to dostaneš na další level. Typy ti pomůžou zjistit už při vývoji, jestli náhodou něco nesedí. Takže doporučuji používat TypeScript spolu s GraphQL – fakt ti to ušetří spoustu problémů.

Celkově bych řekl, že je dobrý kombinovat tyhle přístupy – použít typy v GraphQL a k tomu nějaké ověřovací knihovny jako Joi nebo Yup podle potřeby. Ať to funguje jak má.

181 slov
1.8 minut čtení
24. 6. 2024
Antonín Beneš

Pokud hledáš něco na validaci dat v GraphQL, tak určitě doporučuji zkusit Joi a Yup. Oba fungují docela dobře a máš s nimi možnost vytvořit si vlastní schémata pro validaci. Většinou to zabere nějaký čas, ale výsledky stojí za to. S Apollo Serverem se to dá kombinovat, i když tam nějaké vestavěné možnosti nejsou, ale můžeš přidat middleware, který ti ty validace udělá.

Co se týče typů, tak TypeScript je super volba pro zajištění typové kontroly. Můžeš mít schéma v GraphQL a pak generovat typy automaticky, což ti dost pomůže. Další možnost je používat GraphQL Code Generator, což ti ušetří práci s typy a udrží to tvůj kód čistý.

V zásadě nejlepší je kombinovat tyhle metody a přizpůsobit si je podle potřeb projektu. Zkuste to, fakt to pomůže mít vyčištěná data.

131 slov
1.3 minut čtení
5. 3. 2024
Štěpán Pánek

Takže k tomu validaci dat v GraphQL. Já osobně používám Yup, protože je to jednoduchý a dobře se integruje s různýma frameworkama. S Apollo Serverem to funguje docela bez problémů, ale pak si musíš napsat ty validační schémata sám, což může být trochu opruz. Joi taky není špatný, ale mně se zdá víc komplikovaný na používání.

Když už mluvíme o typech, tak TypeScript je super pro typovou kontrolu, pokud se s tím dáš do kupy a nastavíš si to správně. Pomůže ti to vyhnout se spoustě chyb už při vývoji. Spousta lidí dává přednost kombinaci těchto knihoven - třeba Yup pro validaci a TypeScript pro typy.

Jinak doporučuji zkusit použít resolvery a middleware, co ti pomohou s validací přímo v serveru. Takže celkově bych řekl, že záleží na tom, co ti vyhovuje víc - jestli rychlost vývoje nebo krása kódu. Takže si hraj a najdi to, co ti sedí.

149 slov
1.5 minut čtení
6. 5. 2024
Michal Šváb
GraphQL.cz/Články/Validace dat
Validace dat u uživatelských vstupů: Tipy pro efektivní návrh GraphQL APIObjevte klíčové strategie pro validaci dat v uživatelských vstupech a naučte se, jak efektivně navrhnout GraphQL API, které zajistí integritu dat.
1000 slov
10 minut čtení
18. 6. 2020
Tereza Horáková
Přečíst článek
Podobné otázky