Продвинутый
Почему GraphQL сложно кэшировать на уровне CDN и как это решают?
В REST кэширование работает из коробки: URL /users/1 уникален, метод GET безопасен, CDN легко кэширует ответ.
В GraphQL:
1. Все запросы идут на один URL (/graphql).
2. Используется метод POST (который CDN не кэширует).
✅ Как решают (Persisted Queries / APQ):
1. Клиент хэширует текст своего GraphQL-запроса (получает хэш abc12).
2. Клиент отправляет GET /graphql?extensions={"hash":"abc12"}.
3. CDN видит GET и уникальный URL, поэтому может его закэшировать.
4. Если сервер не знает этот хэш, клиент отправляет полный POST-запрос, сервер сохраняет связку "хэш -> текст запроса" для будущих GET-вызовов.