Мне нужна помощь в определении того, как должен обрабатываться сложный поток между внешним интерфейсом, внутренним сервером (и базой данных).
В настоящее время я работаю над веб-приложением, которое должно обрабатывать регистрацию вещей, в которых участвуют участники. конференции и каждый участник может быть зарегистрирован для нескольких событий. Существует дополнительный уровень сложности, заключающийся в том, что данный пользователь должен иметь возможность зарегистрировать несколько участников. С точки зрения последовательности это будет выглядеть так:
Пользователь входит в приложение и запускает новую регистрацию. Пользователь добавляет одного или нескольких участников к регистрации. Для каждого добавленного участника пользователь выберет одно или несколько событий для регистрации.
Я предполагал, что создание большого объекта json и передача его из внешнего интерфейса в конец должно быть путем вперед. Он содержит все данные для всех атрибутов регистрации, включая пользователя, участников и события участников, инкапсулированные в одном объекте. Однако, если что-то пойдет не так на сервере, это может означать, что весь объект потерян или, по крайней мере, не сохранен. Поскольку данные в конечном итоге сохраняются в 3 таблицы (как у меня сейчас, в любом случае), это означает три разные операции сохранения (опять же, как у меня сейчас, в любом случае).
С другой стороны, мне было интересно, может ли лучший подходбыть управлять этим из внешнего интерфейса. Тогда последовательность может выглядеть следующим образом:
- собрать всю информацию о внешнем интерфейсе через форму, а затем
- вызвать API REST для сохранения регистрации и возврата идентификатора регистрации
- вызовите API REST для сохранения первого участника и получения идентификатора участника
- затем вызовите API REST для сохранения событий для каждого участника
- повторите 3 и 4 для каждого участника.
Буду признателен за любые мысли о наилучшем подходе.