FastAPI aplikacije upravljaju konfiguracijom s pydantic-settings (BaseSettings) — razred koji čita konfiguraciju iz varijabli okruženja (i .env datoteke) s , čuvajući tajne van koda i osiguravajući da je konfiguracija ispravna pri pokretanju.
FastAPI aplikacije upravljaju konfiguracijom s pydantic-settings (BaseSettings) — razred koji čita konfiguraciju iz varijabli okruženja (i .env datoteke) s , čuvajući tajne van koda i osiguravajući da je konfiguracija ispravna pri pokretanju.
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 automatski čita svako polje iz odgovarajuće varijable okruženja (npr. DATABASE_URL), pretvara tipove ("true" → bool, "10" → int), i validira — nedostajuća obavezna vrijednost ili pogrešan tip odmah neće pri pokretanju s jasnom greškom (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}
Injiciranje postavki putem cacheirane ovisnosti čini ih testljivima (nadjačajte u testovima) i osigurava jednu instancu.
# .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)
Ispravno upravljanje postavkama je i operativna potreba (aplikacije trebaju različite konfiguracije putem dev/staging/production) i sigurnosni zahtjev (tajne poput URL baza podataka i ključeva nikada se ne smiju hardkodirati u kontroli izvora — česta, ozbiljna povrada).
Pydanticov BaseSettings pruža idiomatic FastAPI rješenje, a razumijevanje ga je važno svakodnevno znanje.
Njegove ključne prednosti: čitanje konfiguracije iz varijabli okruženja (čuvanje tajni van koda, pristup dvanaest faktora) s automatskom konverzijom tipa i validacijom — tako da se neispravna konfiguracija brzo ne udara pri pokretanju s jasnom greškom umjesto zbunjujućeg neuspjeha tijekom izvođenja.
U kombinaciji s injiciranjem ovisnosti (činjenje postavki testljivima i singleton) i praksom gitignoranih .env datoteka za lokalnu razvoj, to vam daje sigurnu, validiranu, okruženju primjerenu konfiguraciju.
Znati kako definirati postavke, koristiti ih putem DI-ja i upravljati tajnama na siguran način je temeljno za izgradnju proizvodnji spreman FastAPI aplikacija.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj