/
allelleo
/
UCarTopDoerTestTask
Обзор
Документация
Войти
/
allelleo
/
UCarTopDoerTestTask
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app.py
32 строки
991 B
Овчинников Алексей Александрович
init commit
15 июл 2025, 12:49
15 июл 2025, 12:49
82148b7
Код
Авторство
О чём код?
from fastapi import FastAPI, Query from datetime import datetime from typing import Optional from schemas import ReviewIn, ReviewOut from sentiment import detect_sentiment from db import insert_review, get_reviews_by_sentiment, init_db # Lifespan для инициализации БД при запуске async def lifespan(app: FastAPI): init_db() yield app = FastAPI(title="Sentiment Review Service", lifespan=lifespan) @app.post("/reviews") def create_review(review: ReviewIn) -> ReviewOut: sentiment = detect_sentiment(review.text) created_at = datetime.utcnow().isoformat() review_id = insert_review(review.text, sentiment, created_at) return ReviewOut( id=review_id, text=review.text, sentiment=sentiment, created_at=created_at ) @app.get("/reviews") def get_reviews(sentiment: Optional[str] = Query(None, pattern="^(positive|neutral|negative)$")) -> list[ReviewOut]: return get_reviews_by_sentiment(sentiment)