Study
Actix

Konfigurasi & Environment Variables

Penjelasan

Praktik umum untuk mengelola konfigurasi (URL database, port, secret key) adalah lewat environment variable, bukan hard-code di kode sumber. Rust punya `std::env::var("NAMA_VAR")` untuk membaca environment variable saat runtime. Untuk development, crate `dotenvy` memudahkan memuat variabel dari file `.env` ke environment sebelum aplikasi berjalan, mirip `dotenv` di ekosistem lain. Pastikan file `.env` tidak pernah di-commit ke git (masukkan ke `.gitignore`) karena sering berisi kredensial sensitif.

Contoh Konsep

use dotenvy::dotenv;
use std::env;

fn main() {
    dotenv().ok();

    let database_url = env::var("DATABASE_URL")
        .expect("$DATABASE_URL harus di-set di file .env");
    let port: u16 = env::var("PORT")
        .unwrap_or_else(|_| "8080".to_string())
        .parse()
        .expect("PORT harus berupa angka");

    println!("Menjalankan server di port {}", port);
}

Praktikum

Lengkapi pembacaan environment variable DATABASE_URL dengan pesan error kalau tidak ditemukan.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Selalu sediakan file `.env.example` (tanpa nilai sensitif) di repository sebagai dokumentasi variabel apa saja yang dibutuhkan, sementara `.env` yang berisi nilai asli tetap di-gitignore.