Ir al contenido

Inicio rápido

Esta guía le ayudará a configurar GoPotency con los frameworks más comunes.

La forma más popular de usar GoPotency es a través de su middleware para Gin.

  1. Inicializar almacenamiento: Cree un backend de almacenamiento (ej. en memoria).

    store := memory.NewMemoryStorage()
    // Nota: Cerrar el almacenamiento cuando haya terminado
    defer store.Close()
  2. Crear Manager: Configure e instancie el manager de idempotencia.

    manager, err := idempotency.NewManager(idempotency.Config{
    Storage: store,
    TTL: 24 * time.Hour,
    })
    defer manager.Close()
  3. Aplicar Middleware: Use el middleware Idempotency en su enrutador de Gin.

    router := gin.Default()
    router.Use(ginmw.Idempotency(manager))
  4. Definir Rutas: Sus rutas POST/PUT/PATCH ahora están protegidas.

    router.POST("/orders", func(c *gin.Context) {
    c.JSON(200, gin.H{"status": "processed"})
    })

GoPotency también funciona perfectamente con la librería estándar net/http.

  1. Inicializar Manager: Igual que el ejemplo anterior.

  2. Envolver Controladores: Use el middleware para envolver sus controladores HTTP.

    mux := http.NewServeMux()
    handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte(`{"status": "processed"}`))
    })
    mux.Handle("/payment", httpmw.Idempotency(manager)(handler))
  3. Iniciar Servidor:

    http.ListenAndServe(":8080", mux)