Jak na caching v GraphQL? Mám s tím začít?
Přemýšlím, jestli se pustit do cachingu v GraphQL, a jaký by to mělo vlastně smysl. Zkoumal jsem, jak funguje caching v REST API a zdá se mi, že tam je to docela jasné. Ale u GraphQL? Vždyť tam se dotazuje na data dost flexibilně a každý dotaz může být jiný, tak jak se to vlastně dělá? Nemá to výhodu, když si každý klient může říct o úplně jiná data? Dávalo by smysl implementovat nějakou strategii pro cachování dat v GraphQL? Jak vlastně funguje ten caching na úrovni serveru a co se používá na úpravu výsledků? Mám vůbec začít s něčím jako je Apollo Client nebo Relay, nebo je lepší mít vlastní řešení? Někde jsem slyšel něco o HTTP cache a TTL, ale nevím přesně, jak to zapadá do GraphQL. Znamená to, že pokud si někdo jednou načte data, tak se pak už nemusí znovu dotazovat a všechno se načte rychleji? A co invalidace cache? Je to složité? Zajímalo by mě i, jak se to všechno integruje s front-endem. Kde začít a co byste doporučili jako nejlepší postupy pro implementaci cachingu v GraphQL? Jaké jsou typické chyby, kterým bych se měl vyhnout? Omlouvám se za tolik otázek najednou, ale téma je pro mě nové a rád bych získal nějaké zkušenosti od vás, kteří už s tím máte praxi.