GraphQL.cz/Fórum/Migrace na GraphQL - co vše je potřeba přenastavit?

Migrace na GraphQL - co vše je potřeba přenastavit?

Přemýšlím o migraci našeho stávajícího API na GraphQL a chtěl bych se zeptat, co všechno je potřeba přenastavit. Jaké změny bych měl udělat na serveru? Musím upravit databázi, nebo to nějak zvládne GraphQL sám, když to dobře nastavím? Jak to bude s autentizací a autorizací, musím to nějak zásadně měnit, nebo můžu použít současný systém? Co třeba front-end, bude potřeba přepisovat dotazy, nebo jenom přizpůsobit něco v knihovně? A co performance? Měly by se měnit nějakým způsobem naše caching mechanismy? Jaké jsou nejlepší praktiky pro migraci na GraphQL, abychom se vyhnuli potenciálním problémům? Předpokládám, že tam budou i nějaké rozdíly v načítání dat mezi REST a GraphQL. Ještě by mě zajímalo, jestli je potřeba řešit něco ohledně verzování API, když přecházíme na GraphQL. Díky za jakoukoliv pomoc!

127 slov
1.3 minut čtení
4. 11. 2024
Aleš Valenta

Migrace na GraphQL může být náročná, ale dá se to zvládnout. Na serveru budeš muset přepsat logiku pro obsluhu API, protože GraphQL funguje jinak než REST. O databázi: pokud už máš dobře navržené schema, tak ji nemusíš moc měnit, ale může být potřeba některé endpointy nastavit tak, aby odpovídaly GraphQL dotazům.

Ohledně autentizace a autorizace - můžeš použít stávající systém, ale budeš potřebovat upravit middleware nebo resolver, abys to zpracoval správně v rámci GraphQL.

Na front-endu se ti budou muset přepsat dotazy, což může být dost práce. Pokud používáš knihovny jako Apollo nebo Relay, tak by to mělo jít líp. Performance - tady si dej pozor na caching. Můžeš mít problémy s over-fetchingem nebo under-fetchingem, takže je dobrý mít promyšlený caching mechanismy na úrovni serveru i klienta.

Nezapomeň na nejlepší praktiky – snaž se udržovat schema jednoduché a dobře zdokumentované. Co se týče verzování API, v GraphQL je to trochu jinak, většinou se řeší pomocí deprekování polí místo verzování celého API. Takže shrnuto: připrav se na hodně změn a testování.

167 slov
1.7 minut čtení
10. 12. 2024
Vlastimil Nečas

K migraci na GraphQL budeš muset udělat pár změn. Na serveru je jasný, že budeš potřebovat nastavit GraphQL server, což zahrnuje definici schémat a resolverů. Databázi upravovat nemusíš, ale bude dobrý se zamyslet nad tím, jak se budou tvořit dotazy – možná bude potřeba optimalizovat strukturu dat pro GraphQL dotazy. K autentizaci a autorizaci – pokud používáš něco jako JWT nebo OAuth, tak bys to měl být schopný napojit na GraphQL bez velkých změn. Jen si dej pozor na kontrolu oprávnění v resolverech.

Na front-endu to bude chtít přepsat dotazy na GraphQL syntax, takže asi nebudeš moc moci použít staré REST endpointy. Záleží na tom, co používáš za knihovny, třeba Apollo Client ti to usnadní. Co se týče výkonu a cachování, měl bys přehodnotit, jak cachuješ odpovědi, protože GraphQL ti může vracet různé struktury dat v závislosti na dotazu. Takže možná investice do nějakého caching mechanismu na úrovni dotazů by nebyla marná.

Ohledně verzování API – to je dobrý téma. V GraphQL se snažíš o to, aby byl interface stabilní, takže spíš než verzování jako u REST bys mohl udržovat zpětnou kompatibilitu schémat. Nakonec, nejlepší praxí je začít s malými experimenty a postupně rozšiřovat funkce místo okamžité kompletní migrace. Hodně štěstí!

199 slov
2 minut čtení
25. 2. 2024
Irena Horáková

Přejít na GraphQL je docela velká změna a máš pravdu, že je potřeba si to pořádně naplánovat. Na serveru budeš muset implementovat GraphQL server, což znamená, že budeš muset napsat schéma a resolvery pro všechny dotazy a mutace. Databázi můžeš nechat tak, jak je, pokud ti sedí struktura dat. GraphQL umí pracovat s existujícími daty, ale možná budeš chtít upravit některé části pro optimalizaci.

Autentizaci a autorizaci můžeš většinou nechat na stávajícím systému, ale budeš muset nějak propojit tokeny s GraphQL. V front-endu se určitě změní dotazy, takže tam bude třeba přepsat většinu API volání, ale knihovny jako Apollo nebo Relay ti to usnadní.

Co se týče výkonu, caching mechanismy bys měl zvážit – GraphQL poskytuje víc flexibility, což může znamenat víc dotazů najednou. Takže se ujisti, že máš cachování správně nastavené, jinak to může být pomalé.

Z hlediska verzování API – GraphQL preferuje evoluci schématu místo verzování, takže spíš přidáš nové typy než aby ses snažil dělat novou verzi API.

A nakonec nejlepší praxí je pořádně testovat jak backend tak frontend a myslet na optimalizace už od začátku. Držím palce!

179 slov
1.8 minut čtení
19. 6. 2024
Helena Škodová
GraphQL.cz/Články/Mixování API přístupů
Kdy a jak přejít z REST na GraphQL: Strategie a tipyPraktické rady pro vývojáře, kteří zvažují přechod ze staršího REST API na moderní GraphQL. Tento článek nabízí užitečné strategie a tipy, jak efektiv...
1000 slov
10 minut čtení
11. 1. 2024
Lucie Nováková
Přečíst článek
Podobné otázky