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