/api/publicReviews
Метод: GET
Описание: Запрос списка отзывов, которые опубликованы.
Параметры:
start
- с какого элемента загружать результаты. По умолчанию - 0;count
- сколько элементов загружать за один раз. По умолчанию - 10;textSize
- размер предпросмотра для текста, от 0 до 2048. Текст будет обрезан по словам.Права: ✅ Открыт для всех
Ответ:
{
"type": "success",
"message": null,
"data": {
"items": [
{
"id": 10,
"date": "2025-05-10 22:33:39",
"mail": "[email protected]",
"caption": "admin",
"text": "тест",
"rating": 1
},
{
"id": 11,
"date": "2025-05-11 19:25:22",
"mail": "[email protected]",
"caption": "admin",
"text": "Молодцы",
"rating": 4
}
],
"total": 2,
"page": 1,
"pageSize": 2
},
"action": null
}
Подробности:
date
- дата создания отзыва;
mail
- почта пользователя. уникальная и не меняется;
caption
- заголовок (имя пользователя), берется из профиля, сохраняется в таблице reviews на момент отзыва. При смене имени (Петр -> Вася) в таблице останется старое имя;
rating
- оценка, от 1 до 5.
/api/publicReviews/{id}
Метод: GET
Описание: Загрузка отзыва по id.
Параметры: id
- id отзыва.
Права: ✅ Открыт для всех
Ответ:
{
"type": "success",
"message": null,
"data": {
"id": 10,
"date": "2025-05-10 22:33:39",
"mail": "[email protected]",
"caption": "admin",
"text": "тест",
"rating": 1
},
"action": null
}
/api/user/reviews
Метод: GET
Описание: Загрузка списка своих отзывов, в том числе тех, которые забанены или находятся на модерации. Максимальное число отзывов на каждого пользователя - 50.
Права: 🔵 авторизованный пользователь.
Параметры: textSize
- размер окна предпросмотра. по умолчанию - вывести весь текст (2048 символов)
Ответ:
{
"type": "success",
"message": null,
"data": {
"items": [
{
"id": 10,
"date": "2025-05-10 22:33:39",
"caption": "admin",
"text": "тест",
"status": "approved",
"rating": 1
},
{
"id": 11,
"date": "2025-05-11 19:25:22",
"caption": "admin",
"text": "молодцы",
"status": "approved",
"rating": 4
}
],
"total": 2,
"page": 1,
"pageSize": 10
},
"action": null
}
Подробности: status
:
banned
- забанен;moderation
- на модерации;approved
- одобрен (опубликован);deleted
- удален./api/user/reviews/{id}
Метод: GET
Описание: Загрузка отзыва по id.
Параметры: id
- id отзыва.
Права: 🔵 авторизованный пользователь.
Ответ:
{
"type": "success",
"message": null,
"data": {
"id": 10,
"date": "2025-05-10 22:33:39",
"caption": "admin",
"text": "тест",
"status": "approved",
"rating": 1
},
"action": null
}
/api/user/reviews
Метод: PUT
Описание: Добавление отзыва. Отзыв проверяется на стоп-фразы. И у каждого пользователя есть лимит на добавление 3х отзывов в сутки.
Права: 🔵 авторизованный пользователь.
Запрос:
{
"text": "ттт",
"rating": 3
}
Ответ:
201 - created
,{
"type": "success",
"message": "Отзыв добавлен",
"data": {
"id": 12,
"date": "2025-06-17T22:00:01",
"caption": "admin",
"text": "ттт",
"rating": 3
},
"action": null
}
400 - bad request
, если в тексте отзыва содержатся стоп-фразы.Подробности: id
- id отзыва.
/api/user/reviews
Метод: POST
Описание: Редактирование отзыва. После редактирования статус отзыва меняется на moderation
. Если отзыв забанен, его нельзя редактировать, получите ошибку 403
.
Права: 🔵 авторизованный пользователь.
Запрос:
{
"id": 2,
"text": "Молодцы! Выполнили обмен за 5 минут",
"rating": 5
}
Параметры:
id
- id отзыва для редактирования.
Ответ:
200 - OK
,{
"type": "success",
"message": "Отзыв обновлен",
"data": {
"id": 2,
"date": "2025-05-10T22:33:39",
"caption": "admin",
"text": "Молодцы! Выполнили обмен за 5 минут",
"rating": 5
},
"action": null
}
400 - bad request
, если в тексте отзыва содержатся стоп-слова./api/user/reviews
Метод: DELETE
Права: 🔵 авторизованный пользователь.
Описание: Удаление отзывов по id. Отзывы не удаляются из базы мгновенно. Они маркируются как deleted
и доступны для просмотра в админке.
Параметры: ids
- список отзывов, разделенный запятыми.
/api/reviews
Метод: GET
Описание: Загрузка списка отзывов для админки.
Права: 🔴 админка.
Параметры (можно не указывать):
status
- статус отзывов:
banned
- забанен;moderation
- на модерации;approved
- одобрен (опубликован);deleted
- удален.start
- с какого элемента загружать результаты. По умолчанию - 0;count
- сколько элементов загружать за один раз. По умолчанию - 10;dateStart
- все отзывы после выбранной даты;dateEnd
- все отзывы до выбранной даты;userName
- фильтр по имени пользователя (заголовку отзыва);userMail
- фильтр по почте пользователя;filter
- фильтр по тексту отзыва;rating
- фильтр по оценке (от 1 до 5)./api/reviews
Метод: POST
Описание: Редактирование отзыва. Можно менять текст и статус.
Запрос:
{
"id": 2,
"text": "Молодцы! Выполнили обмен за 3 минуты",
"status": "approved",
"rating": 5
}
Ответ:
{
"type": "success",
"message": "Отзыв обновлен",
"data": null,
"action": null
}
/api/reviews
Метод: DELETE
Права: 🔴 админка + isEditReviews
.
Описание: Удаление отзывов по id
Параметры: ids
- список id отзывов, разделенный запятыми.
/api/stopwords
Метод: GET
Права: 🔴 админка + isEditReviews
.
Описание: Загрузка списка стоп-фраз. Если в тексте отзыва содержится хотя бы одна фраза, отзыв не будет опубликован. Регистр символов не имеет значения.
Ответ:
{
"type": "success",
"message": null,
"data": [
"0% риск",
"50% скидка",
"акции",
"банкротство",
"без вложений"
],
"action": null
}
/api/stopwords
Метод: POST
Права: 🔴 админка + isEditReviews
.
Описание: Редактирование списка стоп-фраз. Каждая фраза задается с новой строки. Если в списке есть дубликаты, они будут удалены (List конвертируется в Set).
Можно использовать, например, эти слова: https://github.com/OOPSpam/spam-words/blob/main/spam-words-RU.txt
Запрос:
["риск", "скидка"]
Ответ:
{
"type": "success",
"message": "Стоп-слова обновлены",
"data": null,
"action": null
}