from fastapi import Depends, Query from typing import Optional import yaml import logging logger = logging.getLogger(__name__) def load_config() -> dict: """Load configuration from YAML file""" try: with open('api/config.yaml', 'r') as file: return yaml.safe_load(file) except Exception as e: logger.error(f"Failed to load configuration: {e}") raise # Global configuration config = load_config() def get_config() -> dict: """Dependency to get application configuration""" return config class PaginationParams: def __init__( self, skip: int = Query(0, ge=0, description="Number of items to skip"), limit: int = Query(20, ge=1, le=100, description="Number of items to return") ): self.skip = skip self.limit = limit def get_pagination_params(params: PaginationParams = Depends()) -> PaginationParams: """Dependency for pagination parameters""" return params