Страница 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
Спасибо.