Architektura Pokročilý
Idempotency — bezpečné opakování operací¶
IdempotencyAPIReliability 3 min čtení
Implementace idempotentních API. Idempotency keys a databázové techniky.
Co je idempotence?¶
Vícenásobné provedení = stejný výsledek. GET, PUT, DELETE jsou přirozeně idempotentní. POST není.
Idempotency Key¶
app.post('/api/payments', async (req, res) => {
const key = req.headers['idempotency-key'];
if (!key) return res.status(400).json({ error: 'Missing key' });
const existing = await redis.get(\`idem:\${key}\`);
if (existing) return res.json(JSON.parse(existing));
const result = await processPayment(req.body);
await redis.setex(\`idem:\${key}\`, 86400, JSON.stringify(result));
res.status(201).json(result);
});
DB idempotence¶
INSERT INTO orders (external_id, customer_id, total)
VALUES ('ord-123', 'cust-456', 1000)
ON CONFLICT (external_id) DO NOTHING RETURNING *;
Shrnutí¶
Implementujte idempotency keys pro POST/PATCH. Vždy počítejte s opakovanými requesty.
Potřebujete pomoct s implementací?¶
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.