You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
from fastapi import Depends, Query |
|
from typing import Optional |
|
import yaml |
|
import logging |
|
|
|
logger = logging.getLogger(__name__) |
|
|
|
def load_config() -> dict: |
|
"""Carica configurazione dal file YAML""" |
|
try: |
|
with open('api/config.yaml', 'r') as file: |
|
return yaml.safe_load(file) |
|
except Exception as e: |
|
logger.error(f"Errore nel caricamento della configurazione: {e}") |
|
raise |
|
|
|
# Configurazione globale |
|
config = load_config() |
|
|
|
def get_config() -> dict: |
|
"""Dipendenza per ottenere la configurazione dell'applicazione""" |
|
return config |
|
|
|
class PaginationParams: |
|
def __init__( |
|
self, |
|
skip: int = Query(0, ge=0, description="Numero di elementi da saltare"), |
|
limit: int = Query(20, ge=1, le=100, description="Numero di elementi da restituire") |
|
): |
|
self.skip = skip |
|
self.limit = limit |
|
|
|
def get_pagination_params(params: PaginationParams = Depends()) -> PaginationParams: |
|
"""Dipendenza per i parametri di paginazione""" |
|
return params
|
|
|