GraphQL.cz/Fórum/Můžu použít GraphQL s existující API gateway?

Můžu použít GraphQL s existující API gateway?

Zajímalo by mě, jestli je možné implementovat GraphQL na nějakou stávající API gateway, kterou už mám nasazenou. Mám teď REST API a chci přejít na GraphQL, ale nevím, jestli to bude fungovat dohromady. Přemýšlím o tom, jak by mohlo vypadat propojení mezi GraphQL schématem a mými současnými koncovými body. Když už mám nastavenou API gateway, která se stará o autentizaci a směrování požadavků, bude nutné ji nějak upravit, nebo mohu GraphQL zachovat odděleně? Jaké jsou výhody či nevýhody takového přístupu? Pokud někdo máte zkušenosti s tímto typem integrace, ocenil bych rady ohledně toho, co všechno je potřeba zohlednit při této změně. Například, jak zajistit, aby GraphQL fungoval s mými existujícími datovými zdroji a jestli je třeba nějak víc přizpůsobovat samotnou API gateway. Také mě zajímá, jestli jsou nějaké specifické nástroje nebo knihovny, které by mi mohly pomoci s touto integrací, abych nemusel všechno dělat od nuly. Budu moc rád za jakékoli tipy nebo doporučení od těch, kteří to už zkoušeli!

160 slov
1.6 minut čtení
8. 5. 2024
Jitka Karásková

Jo, určitě to jde. Můžeš na stávající API gateway hodit GraphQL a fungovat to bude. Spíš si dej pozor na to, jak to napojíš na ty REST konce. Většinou se dělá to, že si vytvoříš nějaký GraphQL server, který pak bude fungovat jako proxy k těm REST endpointům. Takže vlastně veškeré dotazy, co dostaneš přes GraphQL, se přeposílají na ty REST API a zpátky.

Co se týče úprav API gateway, záleží jak máš nastavenou autentizaci a směrování. Možná budeš muset tu gateway trochu upravit nebo přidat nová pravidla pro směřování těch GraphQL požadavků.

Výhoda je, že můžeš sdružit víc požadavků do jednoho GraphQL dotazu, což může snížit latenci a zjednodušit frontend. Na druhou stranu, pokud už máš složité REST API, tak ta migrace nemusí být úplně easy a můžeš narazit na problémy s cache nebo s verzováním.

Jestli jde o nástroje, tak jsou knihovny jako Apollo Server nebo GraphQL Yoga, co ti můžou hodně usnadnit práci. Můžeš je nasadit vedle sebe s tou gateway a využít jejich funkce pro snadnější integraci s datovými zdroji. Zkus si projít dokumentaci, tam toho najdeš hodně.

181 slov
1.8 minut čtení
7. 1. 2025
Soňa Malíková

Jo, jasně, GraphQL můžeš napojit na stávající API gateway, pokud to dobře naplánuješ. Můžeš to udělat tak, že GraphQL server bude komunikovat s tvým REST API jako se zdrojem dat. Tvoje gateway už má řešení pro autentizaci a směrování, což je super. Měl bys ale zkontrolovat, jestli tvoje gateway umí míchat REST a GraphQL, některé to zvládají lépe než jiné.

Pokud máš nějaké custom koncovky v API, tak bys měl vytvořit resolvery v GraphQL, které budou volat tyhle REST koncové body. To ti umožní využít už existující logiku a data. Hodně záleží na frameworku, který používáš, jestli tohle podporuje snadno. Můžeš zkusit nástroje jako Apollo Server nebo Hasura pro rychlejší integraci.

Jediná věc, co můžeš potřebovat upravit v API gateway je možná nějaké routování nebo middleware pro GraphQL endpoint. Jinak bys měl být v pohodě. Hlavní výhoda je, že dostaneš flexibilitu dotazování přes GraphQL a uživatelé si budou moct vzít jen to, co potřebují.

Nevýhoda je, že můžeš mít složitější logiku pro resolvery a ladění bude víc náročný. Takže si dej pozor na výkon a caching. V každém případě se ti to může vyplatit! Takže hurá do toho!

185 slov
1.9 minut čtení
15. 12. 2024
Ivana Veselá

Jasně, GraphQL můžeš nasadit na už existující API gateway. Záleží na tom, jak je ta gateway nastavená. Pokud už teď řeší autentizaci a směrování, můžeš to využít i pro GraphQL. Můžeš si vytvořit nový endpoint pro GraphQL a nechat gateway posílat požadavky na tvé REST API. Takže vlastně budeš mít jak REST, tak GraphQL vedle sebe.

Pokud chceš dodržet oddělenost, můžeš udělat proxy mezi GraphQL a REST, takže GraphQL dotazy se budou transformovat na REST volání. To ti usnadní práci se stávajícími datovými zdroji. Ale pozor, může to znamenat víc údržby a složitosti.

Existují různé knihovny jako Apollo Server nebo Express-GraphQL, které ti můžou pomoct s implementací GraphQL serveru. Tyhle nástroje umí hezky obsloužit dotazy a napojit se na REST koncový body.

Zvaž taky, jaký máš plán na migraci dat a schématu, abys neměl problémy s kompatibilitou. Pokud chceš postupně přecházet, tak si dej pozor, aby bylo jasné, jak se budou data načítat z obou systémů. Takže jo, jde to, ale bude to chtít trochu plánování a možná i úpravy v API gateway.

172 slov
1.7 minut čtení
8. 1. 2025
Antonín Hroch
GraphQL.cz/Články/Microservices s GraphQL
Vytváření a správa API gateway pro microservices s GraphQLJak navrhnout a implementovat efektivní API gateway, která integruje více microservices pomocí GraphQL.
1000 slov
10 minut čtení
23. 3. 2024
Richard Malý
Přečíst článek
Podobné otázky