Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Omgevingsvariabelen

English | 中文 | 日本語 | 한국어 | Français | Deutsch | Español | Português | Svenska | Suomi | Nederlands

Namen van omgevingsvariabelen worden in het schema gedeclareerd met confique:

#![allow(unused)]
fn main() {
#[derive(Debug, Config)]
struct DatabaseConfig {
    #[config(env = "APP_DATABASE_URL")]
    url: String,

    #[config(default = 16)]
    #[config(env = "APP_DATABASE_POOL_SIZE")]
    pool_size: u32,
}
}

rust-config-tree leest die namen uit confique::Config::META en bouwt een Figment-provider die elke omgevingsvariabele naar het exacte veldpad mappt.

Gebruik geen delimiter-gebaseerde Figment-omgevingsmapping voor deze crate:

#![allow(unused)]
fn main() {
// Do not use this pattern for rust-config-tree schemas.
Env::prefixed("APP_").split("_")
Env::prefixed("APP_").split("__")
}

split("_") behandelt underscores als scheidingstekens voor geneste sleutels. Daardoor wordt APP_DATABASE_POOL_SIZE een pad zoals database.pool.size, wat botst met Rust-veldnamen zoals pool_size.

Met ConfiqueEnvProvider is deze mapping expliciet:

APP_DATABASE_POOL_SIZE -> database.pool_size

Enkele underscores blijven onderdeel van de naam van de omgevingsvariabele. Figment raadt de nestingregel niet.

Dotenv laden

Voordat runtimeproviders worden geevalueerd, zoekt de loader naar een .env- bestand door omhoog te lopen vanaf de directory van het rootconfiguratiebestand.

Bestaande procesomgevingsvariabelen blijven behouden. Waarden uit .env vullen alleen ontbrekende omgevingsvariabelen aan.

Voorbeeld:

APP_SERVER_PORT=9000
APP_DATABASE_POOL_SIZE=64

Deze variabelen overschrijven configuratiebestandswaarden wanneer het schema passende #[config(env = "...")]-attributen declareert.

Waarden parsen

De bridgeprovider laat Figment omgevingswaarden parsen. Hij roept de parse_env-hooks van confique niet aan. Houd complexe waarden in configuratiebestanden tenzij de Figment-syntaxis voor omgevingswaarden goed bij het type past.