Claves de idempotencia
Corvis no tiene soporte incorporado para claves de idempotencia (guardar la respuesta de una petición identificada por una cabecera Idempotency-Key y repetirla si llega de nuevo).
Alternativa
Se puede construir con piezas existentes:
- Un interceptor lee la cabecera con
ctx.request(), busca una respuesta guardada y, si no existe, ejecutanext.handle()y guarda el resultado. - Para guardar las respuestas en un solo proceso sirve
CacheManager(ver Caché). Si tienes varias instancias, guarda la clave en la base de datos con una restricción única (#[unique]en un modelo de corvis-orm), para que dos peticiones simultáneas no se ejecuten ambas.