Ir al contenido

Middleware para Fiber

GoPotency soporta el framework Fiber a través de un middleware de alto rendimiento diseñado para la velocidad y la confiabilidad.

Asegúrate de tener GoPotency instalado:

Ventana de terminal
go get github.com/fco-gt/gopotency
package main
import (
idempotency "github.com/fco-gt/gopotency"
fibermw "github.com/fco-gt/gopotency/middleware/fiber"
"github.com/fco-gt/gopotency/storage/memory"
"github.com/gofiber/fiber/v2"
)
func main() {
app := fiber.New()
// 1. Inicializar el almacenamiento y el manager
store := memory.NewMemoryStorage()
manager, _ := idempotency.NewManager(idempotency.Config{
Storage: store,
})
// 2. Registrar el middleware
app.Use(fibermw.Idempotency(manager))
// 3. Definir rutas
app.Post("/payments", func(c *fiber.Ctx) error {
return c.JSON(fiber.Map{
"status": "Pago recibido",
"transaction_id": "tx_98765",
})
})
app.Listen(":8080")
}

Puedes personalizar el comportamiento del middleware pasando un objeto Config a la función NewManager. Consulta la Guía de Configuración para más detalles.

Para rutas críticas, puedes imponer que una clave debe estar presente:

manager, _ := idempotency.NewManager(idempotency.Config{
Storage: store,
RequireKey: true, // Devolverá 400 si falta el encabezado
})

Por defecto, el middleware busca el encabezado Idempotency-Key. Puedes cambiar esto o usar una estrategia personalizada (como el hashing del cuerpo de la solicitud) en la configuración del manager.