Правильное использование сервисного слоя
Правильное использование сервисного слоя
Добрый день, форумчане. Возник следующий вопрос по архитектуре при разработке REST. Через API есть возможность создания и редактирования заданий. У задания есть несколько статусов и в зависимости от статуса можно редактировать только определенный набор полей. В прошлой версии этот момент решался сценариями, но сейчас пытаюсь использовать сервисной слой. Соответственно как лучше и где обрабатывать данный момент?
Re: Правильное использование сервисного слоя
создай ресурс /entity/<id>/status и его меняй - на другом конце провода сервис, апдейтящий одно поле.
Re: Правильное использование сервисного слоя
Код: Выделить всё
POST /task/<id>
{
"status": <status>
}
204 No Content
Код: Выделить всё
$form = (new TaskStatusUpdateForm($id))->load(Yii::$app->request->getBodyParams(), '');
if ($form->validate()) {
new TaskStatusUpdateService($form);
}
Re: Правильное использование сервисного слоя
Я может не совсем правильно описал условия, но дело не в изменении статуса, а в том, что при разных статусах должны обрабатываться разные атрибуту сущности задание.
Re: Правильное использование сервисного слоя
POST /tasks/5/begin {date}
POST /tasks/5/assign {date, userId}
POST /tasks/5/cancel {date, reason}
POST /tasks/5/complete {date}
POST /tasks/5/assign {date, userId}
POST /tasks/5/cancel {date, reason}
POST /tasks/5/complete {date}