Condividi tramite


Abilitare le funzionalità in base a una pianificazione in un'applicazione Web Go Gin

In questa guida si usa il filtro dell'intervallo di tempo per abilitare una funzionalità in base a una pianificazione per un'applicazione Web Go Gin.

L'esempio usato in questo articolo si basa sull'applicazione Web Go Gin introdotta nella guida introduttiva alla gestione delle funzionalità. Prima di continuare, completare la guida introduttiva per creare un'applicazione Web Go Gin con un flag di funzionalità Beta. Al termine, è necessario aggiungere un filtro di intervallo di tempo al flag di funzionalità Beta nell'archivio di Configurazione app.

Prerequisites

Usare il filtro di intervallo di tempo

È stato aggiunto un filtro di intervallo di tempo per il flag di funzionalità Beta nei prerequisiti. Successivamente, verrà usato il flag di funzionalità con il filtro dell'intervallo di tempo nell'applicazione Web Go Gin.

Quando si crea una gestione funzionalità, i filtri di funzionalità predefiniti vengono aggiunti automaticamente alla relativa raccolta di filtri delle funzionalità

Il codice esistente dal quickstart gestisce già i filtri dell'intervallo di tempo tramite il gestore delle funzionalità:

// Create feature flag provider
featureFlagProvider, err := azappconfig.NewFeatureFlagProvider(appConfig)
if err != nil {
    log.Fatalf("Error creating feature flag provider: %v", err)
}

// Create feature manager (supports built-in filters including TimeWindowFilter)
featureManager, err := featuremanagement.NewFeatureManager(featureFlagProvider, nil)
if err != nil {
    log.Fatalf("Error creating feature manager: %v", err)
}

La valutazione delle funzionalità nel middleware rispetterà ora il filtro dell'intervallo di tempo:

func (app *WebApp) featureMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        // Check if Beta feature is enabled (TimeWindowFilter is automatically evaluated)
        betaEnabled, err := app.featureManager.IsEnabled("Beta")
        if err != nil {
            log.Printf("Error checking Beta feature: %v", err)
        }

        // Store feature flag status for use in templates
        c.Set("betaEnabled", betaEnabled)
        c.Next()
    }
}

Filtro di intervallo di tempo in azione

Riavviare l'applicazione. Se l'ora corrente è precedente all'ora di inizio impostata per il filtro di intervallo di tempo, la voce di menu Beta non verrà visualizzata sulla barra degli strumenti. Ciò è dovuto al fatto che il flag di funzionalità Beta è disabilitato dal filtro di intervallo di tempo.

Screenshot dell'app Web Gin con il menu Beta nascosto.

Quando l'ora di inizio è passata, aggiornare il browser alcune volte. Si noterà che viene visualizzata la voce di menu Beta. Ciò è dovuto al fatto che il flag di funzionalità Beta è ora abilitato dal filtro di intervallo di tempo.

Screenshot dell'applicazione web Gin con il menu Beta.

Next steps

Per altre informazioni sui filtri delle funzionalità, continuare con i documenti seguenti.

Per il rundown completo delle funzionalità della libreria di gestione delle funzionalità Go, continuare con il documento seguente.