IDEMPOTENCIA
Reintenta sin miedo a duplicar.
Una red inestable no debería crear dos cotizaciones. Manda una Idempotency-Key en cualquier POST, PATCH o DELETE: si la petición se repite con la misma llave y el mismo cuerpo, Cord devuelve la respuesta original, marcada con Idempotent-Replayed, en vez de ejecutar dos veces. Si el cuerpo cambió, responde con un error explícito.
- Funciona en todas las mutaciones de /api/v1
- La respuesta repetida es idéntica, byte por byte
- Misma llave con otro cuerpo: error, nunca un duplicado silencioso
# 1er intento: se crea la cotización
POST /api/v1/cotizaciones
Idempotency-Key: pedido-7781
← 200 { "data": { "folio": "COT-0150", … } }
# 2º intento (se cortó la red): misma llave, mismo cuerpo
POST /api/v1/cotizaciones
Idempotency-Key: pedido-7781
← 200 Idempotent-Replayed: true
{ "data": { "folio": "COT-0150", … } }
# la misma respuesta, byte por byte
# misma llave, otro cuerpo
← 422 { "error": "Esta clave de idempotencia ya se usó con otra petición.",
"code": "idempotency_key_reused" }
# la primera petición sigue en proceso
← 409 { "code": "idempotency_in_progress" }