Inicio rápido
Esta guía le ayudará a configurar GoPotency con los frameworks más comunes.
Con Gin
Sección titulada «Con Gin»La forma más popular de usar GoPotency es a través de su middleware para Gin.
-
Inicializar almacenamiento: Cree un backend de almacenamiento (ej. en memoria).
store := memory.NewMemoryStorage()// Nota: Cerrar el almacenamiento cuando haya terminadodefer store.Close() -
Crear Manager: Configure e instancie el manager de idempotencia.
manager, err := idempotency.NewManager(idempotency.Config{Storage: store,TTL: 24 * time.Hour,})defer manager.Close() -
Aplicar Middleware: Use el middleware
Idempotencyen su enrutador de Gin.router := gin.Default()router.Use(ginmw.Idempotency(manager)) -
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"})})
Con HTTP Estándar
Sección titulada «Con HTTP Estándar»GoPotency también funciona perfectamente con la librería estándar net/http.
-
Inicializar Manager: Igual que el ejemplo anterior.
-
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)) -
Iniciar Servidor:
http.ListenAndServe(":8080", mux)