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.
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.