Задать вопрос
@romicohen
Системный Архитектор

Какова best practice для преобразования входящего JSON при создании/обновлении модели через API, где это принято делать?

Суть вопроса:

При создании модели мы получаем на /api/create JSON в котором 100500 переменных, которые затем надо как-то привязать к модели, дополнить другими данными, и сохранить.

Получается такая примерно простыня

$user->name = $input['name'];
$user->address = $input['address'];
...
$user->babushka = $input['babushka'];

$user->save();


то же самое и на /api/update

В общем, получается контроллер состоящий из нескольких жирнейших методов.

В принципе, все работает, но хочется узнать какова Best practice по сборке таких объектов.

Где это общепринято делать - оставить в контроллере? Убрать в модель? Создать какой-то особый класс?

Заранее спасибо.
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 3
@jazzus
$user->update($request->validated())
для создания аналогично с create
Ответ написан
@inFureal
Выдели отдельный сервис или экшн для манипуляций с моделью. Например
class UserHandler {
    static function handle($user, $data) {} 
}


Или же если комбинировать примеры, которые дали выше и добавить обсервер на события внутри модели
class UserObserver {
    function saving(User $user) {}
}

// И в AppServiceProvider
User::observe(UserObserver::class);
Ответ написан
@romicohen Автор вопроса
Системный Архитектор
В конечном итоге просто создал сервисный класс и перетащил всё туда. Ну, хз "правильно" это или нет, но сейчас это так ))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы