Вопрос проверяет знание методов ускорения API, зависящего от медленных внешних сервисов.
Оптимизация включает:
Кэширование ответов.
Асинхронные запросы.
Параллельное выполнение запросов.
Методы оптимизации:
Кэширование
Сохранять ответы внешних API на 5–10 минут.
Асинхронность
Использовать aiohttp + asyncio.
Параллелизм
Запускать несколько запросов одновременно через gather.
Пример асинхронного API:
async def fetch_data(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
return await resp.json()
@app.get("/data")
async def get_data():
urls = ["http://api1.com", "http://api2.com"]
results = await asyncio.gather(*[fetch_data(url) for url in urls])
return resultsКогда применять:
При высокой нагрузке и медленных интеграциях.