FastAPI applications mengelola configuration nganggo pydantic-settings (BaseSettings) — kelas sing maca config saka environment variables (lan .env files) nganggo , nyegah secrets dijupuk ing code lan njamin config bener ing startup.
FastAPI applications mengelola configuration nganggo pydantic-settings (BaseSettings) — kelas sing maca config saka environment variables (lan .env files) nganggo , nyegah secrets dijupuk ing code lan njamin config bener ing startup.
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
app_name: str = "My API"
database_url: str # required — must be provided
secret_key: str # required (a secret)
debug: bool = False
max_connections: int = 10
class Config:
env_file = ".env" # also read from a .env file
settings = Settings() # reads & VALIDATES env vars at startup
BaseSettings sacara otomatis maca saben field saka matching environment variable (contone DATABASE_URL), ngubah types ("true" → bool, "10" → int), lan validate — nilai required sing ilang utawa type sing salah bakal gagal langsung ing startup nganggo error sing jelas (fail-fast).
from functools import lru_cache
from fastapi import Depends
@lru_cache # create the Settings once (cached)
def get_settings():
return Settings()
@app.get("/info")
def info(settings: Settings = Depends(get_settings)):
return {"app": settings.app_name, "debug": settings.debug}
Nyuntik settings via cached dependency gawe dheweke testable (override ing tests) lan njamin siji instance.
# .env — local config, GITIGNORED (never commit secrets)
DATABASE_URL=postgresql://localhost/mydb
SECRET_KEY=dev-secret
DEBUG=true
✓ Keep secrets in env vars / .env (gitignored); commit a .env.example documenting keys
✓ In production, inject config via the platform's environment / secret manager
✓ Validation at startup catches misconfiguration immediately (not deep in a request)
Settings management sing bener yaiku operational necessity (apps butuh config beda ing dev/staging/production) lan security requirement (secrets kaya database URLs lan keys ora boleh hardcoded ing source control — breach sing umum lan serius).
Pydantic BaseSettings menehi solusi idiomatic FastAPI, lan mangerteni iku penting kanggo ngelmuning saben dina.
Advantage utama: maca config saka environment variables (nyegah secrets saka code, twelve-factor approach) nganggo type conversion lan validation otomatis — dadi misconfiguration gagal cepet ing startup nganggo error sing jelas tinimbang failure runtime sing nggegirisi.
Digabung nganggo dependency injection (gawe settings testable lan singleton) lan cara gitignored .env files kanggo development lokal, iki menehi configuration aman, validate, lan sesuai lingkungan.
Nangerteni cara nggolongake settings, nggunakake dheweke via DI, lan handle secrets kanthi aman yaiku fundamental kanggo bangun FastAPI applications sing production-ready.