Junior — Middle
Има ли ситуации, в които е трябвало да конфигурирате или разширите функционалността на FastAPI за специфични изисквания?
sobes.tech AI
Отговор от AI
Да, в FastAPI часто приходится настраивать или расширять функциональность под специфичные требования. Например:
- Добавление кастомных middleware для логирования или обработки ошибок.
- Использование Dependency Injection для подключения сервисов или баз данных.
- Расширение валидации данных с помощью Pydantic моделей.
- Настройка CORS, аутентификации и авторизации через OAuth2 или JWT.
- Создание собственных маршрутов с параметрами и обработчиками.
Пример добавления middleware для логирования времени обработки запроса:
from fastapi import FastAPI, Request
import time
app = FastAPI()
@app.middleware("http")
async def log_request_time(request: Request, call_next):
start_time = time.time()
response = await call_next(request)
duration = time.time() - start_time
print(f"Request {request.url.path} took {duration:.4f} seconds")
return response
Таким образом, FastAPI предоставляет гибкие возможности для расширения и настройки под задачи проекта.