GraphQL.cz/Fórum/Jaké jsou nejlepší praktiky pro verzi pro GraphQL schémata?

Jaké jsou nejlepší praktiky pro verzi pro GraphQL schémata?

Zajímalo by mě, jak to vlastně děláte s verzováním GraphQL schémat? Je to docela složitá záležitost a rád bych slyšel názory od lidí, kteří s tím mají zkušenosti. Vím, že na rozdíl od REST API, kde se verze často řeší pomocí URL, u GraphQL je to trošku jiné a může to být matoucí. Jak tedy přistupujete k tomu, když potřebujete změnit existující typy nebo pole? Jaké techniky používáte, abyste se vyhnuli problémům zpětné kompatibility? Omlouvám se, pokud je to jasné, ale chtěl bych znát konkrétní příklady nebo techniky, které si myslíte, že fungují nejlépe. Měli byste používat deprecated pole a jak dlouho je držet v schématu? Nebo spíše vytváříte novou verzi schématu a jak takový proces probíhá? Jak to vidíte v rámci týmu? Existují nějaké best practices, které byste doporučili pro správu verzí a migraci dat na novější verze? Je důležité mít dokumentaci k těmto změnám, nebo je lepší mít robustní testy? Slyšel jsem o různých nástrojích a přístupech, ale osobní zkušenosti by byly super. Prosím, podělte se o své myšlenky a tipy!

173 slov
1.7 minut čtení
3. 12. 2021
Věra Benešová

K verzování GraphQL schémat je dobrý přístup mít na paměti zpětnou kompatibilitu. Místo toho, abys vytvářel nové verze, doporučuji používat deprecated pole. Když něco měníš, označ to jako deprecated a ponechej to v API třeba na půl roku nebo rok. Tím dáš uživatelům čas přizpůsobit se a přejít na novou variantu. Je fajn mít jasnou dokumentaci ke změnám, aby bylo jasné, co se změnilo a co by se mělo vyhnout.

Testy jsou taky klíčový. Mít solidní testy ti pomůže udržet API stabilní při jakýchkoli změnách. Co se týče migrace dat, snaž se mít dobře promyšlený plán, jak s novými datovými strukturami pracovat a jak stará data převádět.

Celkově bych řekl, že méně je více – radši udělej změny postupně a srozumitelně, než všechno rozbít a dělat novou verzi, která pak bude komplikovanější na údržbu.

133 slov
1.3 minut čtení
26. 11. 2024
Zdeněk Čermák

Verzování GraphQL schémat je fakt výzva, ale jsou určitý techniky, co nám fungujou. Primárně se snažíme udělat schéma co nejvíc zpětně kompatibilní, což znamená, že když něco měníme, tak přidáváme nový pole místo mazání nebo úprav starých. Například, když potřebujeme změnit typ pole, radši přidáme nový field a ten starej označíme jako deprecated. To dává lidem čas na přechod.

Co se týče deprekovaných polí, obvykle je necháváme nějakou dobu v systému – třeba 6 měsíců až rok – ale to dost záleží na konkrétní situaci a týmu. Je dobrý mít dokumentaci k těmhle změnám, aby si všichni mohli zjistit, co se mění a proč. Testy jsou samozřejmě zásadní pro ověření, že nic nezhavaruje, když měníme schéma.

A co se týče verzí? Někdy to prostě nevyhnutelně vyžaduje novou verzi API, ale snažíme se to minimalizovat a spíš pracovat s evolucí stávajícího schématu. Je to o komunikaci v týmu a plánování dopředu – když víme, že něco hodláme změnit, líp se to pak dělá.

Nástroje jako Apollo nebo GraphQL Tools nám pomáhají s generováním dokumentace a sledováním změn. Celkově je to spíš o tom mít jasnou strategii a nebát se udělat změny, když je to potřeba.

193 slov
1.9 minut čtení
17. 11. 2024
Radek Havelka

Verzování GraphQL schémat fakt může být oříšek. Místo aby se dělaly nové verze jako u REST, tak tady spíš používáme techniky jako "deprecate" pole a typy, což je fajn způsob, jak říct uživatelům, že něco je už zastaralé. Tyhle deprecated pole bychom měli nechat v schématu minimálně rok, aby měli vývojáři čas přejít na novou verzi.

Je dobrý mít ve schématu pořád dokumentaci k těm změnám, ale testy jsou rozhodně nezbytné. Vždycky po změnách radši probíhají testy, abychom si byli jisti, že nic nezhavaruje. Pro migraci dat používáme skripty nebo i nějaké nástroje na transformaci dat, to se hodí, když měníme strukturu dat.

Další věc je komunikace v týmu. Všichni by měli mít jasnou představu o tom, co se mění a proč. Tím se vyhneme zbytečným problémům. Takže shrnuto: používej deprecated pole, drž dokumentaci v aktuálním stavu a testuj pořád. To by mělo pomoct.

143 slov
1.4 minut čtení
26. 11. 2024
Adam Kolář
GraphQL.cz/Články/Práce s JSON response
Správa verzí JSON odpovědí v GraphQL API: Efektivní strategie pro budoucnostČlánek se zaměřuje na způsoby, jak efektivně spravovat verze JSON odpovědí v GraphQL API, včetně strategií pro zachování zpětné kompatibility.
1000 slov
10 minut čtení
12. 11. 2021
Barbora Němcová
Přečíst článek
Podobné otázky