from fastapi import APIRouter import aiofiles import json # from async_lru import alru_cache import logging logging.basicConfig(level=logging.INFO) router = APIRouter(prefix='/api/v1', tags=['tariffs']) # @alru_cache(maxsize=1, ttl=86400) async def get_tariffs_from_file(): async with aiofiles.open('data/tariffs.json', 'r', encoding='utf-8') as f: content = await f.read() data = json.loads(content) # <- блокирующая операция, но с маленьким контентом + кэш # Удаляем squad_uuids for tariff in data.get('tariffs', []): tariff.pop('squad_uuids', None) return data @router.get('/tariffs') async def get_tariffs(): return await get_tariffs_from_file()