Автор: Виноградов Данил
Ссылка на задание тут
docker-compose up
У проекта есть описание методов в Postman
Добавление новой записи в систему
В параметрах запроса должен передаваться projectId, параметр int должен быть больше 0. В теле запроса принимает такие параметры: name,description(опционально). Оба параметра string, размер больше 3х, но меньше 255.
Пример ниже показывает принимаемую на вход и выходящую структуры
Входящая структура
{
"name": "chipi",
"description": "chapachapa"
}
Выходящая структура
{
"id": 1,
"projectId": 1,
"name": "chipi",
"description": "chapachapa",
"priority": 1,
"createdAt": "2024-03-02T10:24:51.729329Z"
}
Обновление полей структуры
В параметрах запроса должны передаваться параметры id,projectId. Параметры int являются обязательными и должны быть больше 0. В теле запроса принимает такие параметры: name,description(опционально). Оба параметра string, размер больше 3х, но меньше 255.
Пример ниже показывает принимаемую на вход и выходящую структуры
Входящая структура
{
"name":"chapa",
"description":"chipa"
}
Выходящая структура
{
"id": 1,
"projectId": 1,
"name": "chapa",
"description": "chipa",
"priority": 1,
"createdAt": "2024-03-02T10:24:51.729329Z"
}
Обновление полей priorities
В параметрах запроса должны передоваться параметры id,projectId. Параметры int являются обязательными и должны быть больше 0. В теле запроса принимает параметр: newPriority. Параметр int должен быть больше 0.
Пример ниже показывает принимаемую на вход и выходящую структуры
Входящая структура
{
"newPriority": 2
}
Выходящая структура
{
"priorities": [
{
"id": 2,
"priority": 2
},
{
"id": 3,
"priority": 3
},
{
"id": 4,
"priority": 4
}
]
}
Удаление записи
В параметрах запроса должны передоваться параметры id,projectId. Параметры int типа, являются обязательными и должны быть больше 0.
Пример ниже показывает выходящую структуру
Возвращаемая структура
{
"id": 1,
"campaignId": 1,
"removed": true
}
Вывод некоторого количества записей
В параметрах запроса должны передоваться параметры limit,offset. Параметры int типа, не являются обязательными. Limit должен быть больше 0, по стандарту значение 10. Offset должен быть больше или равень 0, по стандарту знаяение 1.
Пример ниже показывает возвращаемую структуру
Возвращаемая структура
{
"meta": {
"total": 2,
"removed": 1,
"limit": 10,
"offset": 0
},
"goods": [
{
"id": 1,
"projectId": 1,
"name": "chapa",
"description": "chipa",
"priority": 2,
"removed": true,
"createdAt": "2024-03-02T20:24:51.729329Z"
},
{
"id": 2,
"projectId": 1,
"name": "chipi",
"description": "chapachapa",
"priority": 2,
"createdAt": "2024-03-02T20:40:31.03532Z"
},
]
}
Внутри проекта в директории /docs лежит swagger документация
Я понимаю, что данное решение совсем плохое, но я не смог понять каким образом мне реализовать инвалидацию не имея доступа к полям limit и offset при этом не совершая сохранение построчно, что накладно т.к. у нас будет огромное количество запросов в реляционную бд. Буду рад получить ответ в фидбеке на то, как лучше это было бы реализовать.