Как реализовать идемпотентность API в Node.js?

Senior
256 просмотров
AFK Offer AI

Идемпотентность: повторный запрос даёт тот же результат. GET/PUT/DELETE идемпотентны по природе. POST не идемпотентен. Решение: клиент генерирует Idempotency-Key (UUID). Сервер: ищет в Redis/БД, если есть — возвращает закэшированный ответ, иначе обрабатывает и сохраняет. Ключ имеет TTL (24 часа). Важно для: платёжных операций (не списать дважды), создания ресурсов при network retry. Stripe, PayPal используют этот паттерн. Хранение: { key, response, status, createdAt } в Redis с TTL.

Следующий вопрос

Как использовать Sequelize с Node.js?