FastAPI એપ્લિકેશનો pydantic-settings (BaseSettings) સાથે ગોઠવણ સંચાલિત કરે છે — એક વર્ગ જે પર્યાવરણીય ચલો (અને .env ફાઇલો) માંથી ગોઠવણ વાંચે છે સાથે, રહસ્યો કોડ બહાર રાખીને અને ગોઠવણ સ્ટાર્ટઅપ પર સાચી હોવાનું નિશ્ચિત કરે છે.
FastAPI એપ્લિકેશનો pydantic-settings (BaseSettings) સાથે ગોઠવણ સંચાલિત કરે છે — એક વર્ગ જે પર્યાવરણીય ચલો (અને .env ફાઇલો) માંથી ગોઠવણ વાંચે છે સાથે, રહસ્યો કોડ બહાર રાખીને અને ગોઠવણ સ્ટાર્ટઅપ પર સાચી હોવાનું નિશ્ચિત કરે છે.
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 આપોઆપ દરેક ક્ષેત્ર મેળવતા પર્યાવરણીય ચલ માંથી વાંચે છે (દા.ત. DATABASE_URL), પ્રકારો રૂપાંતરિત કરે છે ("true" → bool, "10" → int), અને માન્યતા આપે છે — હરી જરૂરી મૂલ્ય અથવા ખોટો પ્રકાર સ્ટાર્ટઅપ પર તુરંત નિષ્ફળ થાય છે સ્પષ્ટ ભૂલ સાથે (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}
ক્યાશ્ડ અવલંબન દ્વારા સેટિંગ્સ ઇંજેક્ટ કરવું તેમને પરીક્ષણીય બનાવે છે (પરીક્ષણમાં ઓવررાઇડ કરો) અને એક એકલો ઉદાહરણ સુનિશ્ચિત કરે છે.
# .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)
યોગ્ય સેટિંગ્સ સંચાલન એક ક્રિયાત્મક આવશ્યકતા છે (એપ્લિકેશનોને dev/staging/production માં વિવિધ ગોઠવણની જરૂર છે) અને એક સુરક્ષા આવશ્યકતા (ડેટાબેસ URL અને કી જેવા રહસ્યો સોર્સ નિયંત્રણમાં કોઈપણ રીતે હાર્ડકોડ કરવા જોઈએ નહીં — સામાન્ય, ગંભીર ઉલ્લંઘન).
Pydantic નું BaseSettings મુખ્ય FastAPI સમાધાન આપે છે, અને તેને સમજવું મહત્વપૂર્ણ રોજિંદું જ્ઞાન છે.
તેના મુખ્ય ફાયદો: પર્યાવરણીય ચલો થી ગોઠવણ વાંચવું (રહસ્યો કોડ બહાર રાખીને, બાર મહીનાનો અભિગમ) આપોઆપ પ્રકાર રૂપાંતર અને માન્યતા સાથે — તેથી ખોટી ગોઠવણ સ્ટાર્ટઅપ પર ઝડપથી સ્પષ્ટ ભૂલ સાથે નિષ્ફળ થાય છે રનટાઇમ પર મૂંઝવણભરી નિષ્ફળતાને બદલે.
અવલંબન ઇંજેક્શન (સેટિંગ્સ પરીક્ષણીય અને singleton બનાવતી) અને સ્થાનિક વિકાસ માટે gitignored .env ફાઇલોના પ્રેક્ટિસ સાથે મળીને, તે તમને સુરક્ષિત, માન્યતાવાળી, પર્યાવરણ-યોગ્ય ગોઠવણ આપે છે.
સેટિંગ્સ વ્યાખ્યાયિત કરવું, તેમને DI દ્વારા ઉપયોગ કરવું, અને રહસ્યોને સુરક્ષિતરીતે સંચાલિત કરવું કેવું તે જાણવું ઉત્પાદન-તૈયાર FastAPI એપ્લિકેશનો બનાવવા માટે મૌલિક છે.
વિગતવાર જવાબો સાથે IT ઇન્ટરવ્યૂ પ્રશ્નોની લાઇબ્રેરી — જુનિયરથી સિનિયર સુધી.
દાન કરો