Sobes.tech
Junior — Middle
70

Имели ли опыт работы с синхронными и асинхронными компонентами FastAPI?

Answer from AI

sobes.tech AI

Да, в FastAPI можно работать как с синхронными, так и с асинхронными компонентами.

Синхронные функции обрабатывают запросы обычным способом, а асинхронные — с использованием async def, что позволяет эффективно обрабатывать множество запросов без блокировки.

Пример:

from fastapi import FastAPI
import time

app = FastAPI()

@app.get("/sync")
def sync_endpoint():
    time.sleep(1)  # блокирующая операция
    return {"message": "sync response"}

@app.get("/async")
async def async_endpoint():
    import asyncio
    await asyncio.sleep(1)  # неблокирующая операция
    return {"message": "async response"}

Асинхронные компоненты полезны для операций ввода-вывода, например, запросов к базе данных или внешним сервисам, позволяя серверу обрабатывать другие запросы во время ожидания.