Backend — это центральный API-шлюз, который:
- Принимает запросы от внешних пользователей и организаторов (endpoint
/predict). - Делегирует классификацию и анализ отзывов ML-сервису (
lct-ml). - Проверяет корректность данных и возвращает структурированные ошибки.
- Форматирует ответы в соответствии с требованиями ТЗ.
Формат запроса:
{
"data": [
{"id": 1, "text": "Очень понравилось обслуживание..."},
{"id": 2, "text": "Кредитную карту одобрили быстро"}
]
}
{
"predictions": [
{"id": 1, "topics": ["Обслуживание","Мобильное приложение"], "sentiments": ["положительно","отрицательно"]},
{"id": 2, "topics": ["Кредитная карта"], "sentiments": ["нейтрально"]}
]
}
- Перейдите в папку проекта:
cd GoBackend- Запустите проект:
docker compose up --build- API будет доступно по адресу:
http://localhost:8080
- Установите Go 1.25+
- Установите зависимости:
cd GoBackend
go mod download- Запустите сервер:
go run cmd/server/main.goGET /health
Проверка работоспособности сервера.
Ответ:
{
"status": "healthy",
"timestamp": "2025-09-27T01:10:42.082Z",
"version": "1.0.0"
}GET /api/v1/reviews
Получение отзывов с пагинацией и фильтрацией.
Параметры запроса:
page(int, default: 1) - номер страницыlimit(int, default: 20, max: 100) - количество отзывов на страницеtopic(string, optional) - фильтр по темеsentiment(string, optional) - фильтр по тональности
Пример запроса:
GET /api/v1/reviews?page=1&limit=10&topic=Обслуживание&sentiment=положительно
Ответ:
{
"reviews": [
{
"id": 1,
"link": "https://example.com/review/1",
"date": "2025-01-15",
"title": "Отличное обслуживание",
"text": "Очень понравилось обслуживание в отделении...",
"rating": "5",
"status": "published",
"product": "Депозиты",
"city": "Москва",
"topics": ["Обслуживание"],
"sentiments": ["положительно"]
}
],
"total": 14410,
"page": 1,
"limit": 10,
"total_pages": 1441
}GET /api/v1/analytics
Получение полных данных для аналитики (все отзывы + предсказания).
Ответ:
{
"reviews": [...],
"predictions": [
{
"id": 1,
"topics": ["Обслуживание", "Мобильное приложение"],
"sentiments": ["положительно", "отрицательно"]
}
]
}- Go 1.25
- Fiber v3 (веб-фреймворк)
- Docker & Docker Compose
- JSON для обмена данными