Я думаю, что ваш API должен иметь конечную точку для создания счета-фактуры, содержащего список объектов InvoiceDetails. В то же время должна быть доступная конечная точка для создания одного объекта InvoiceDetail в вашем API. Think Rest API в этом случае и не очень тесно связан с потребностями одного клиентского приложения angular / реагировать / vue и т. Д.
Это обеспечит гибкость вашего API в случае, если вам понадобится пользовательский интерфейс для добавления дополнительных InvoiceDetails к существующему Invoice или новому полному объекту Invoice со всеми объектами InvoiceDetails.
Какую из этих конечных точек вы используете, должно определяться пользовательским интерфейсом или любым другим клиентом. Например, создание нового Invoice в пользовательском интерфейсе. Я бы хотел создать конечную точку Invoice со списком InvoiceDetails. Добавление InvoiceDetails к существующему Invoice Я буду использовать конечную точку для добавления объекта InvoiceDetails.
Это более индивидуальная оценка, основанная на том, чего вы пытаетесь достичь в пользовательском интерфейсе. Пользовательский интерфейс может добавить родителя со всеми своими детьми или добавить ребенка к существующему родителю.
СЕЙЧАС КАК ОБРАЩАТЬСЯ С API ИЗ UI (ОДИН ИЛИ НЕСКОЛЬКИХ ВЫЗОВОВ)?
Наличие нескольких вызовов API из пользовательского интерфейса для добавления одного и одного объекта InvoiceDetails при создании счета-фактуры может быть проблемой синхронизации между пользовательским интерфейсом и API. Допустим, вы успешно добавили 7/10, но не остальные 3, потому что что-то пошло не так, тогда вам, возможно, потребуется политика повторных попыток и сохранить состояние, которое было успешным или нет для отображения в пользовательском интерфейсе? Как насчет производительности?
Я бы порекомендовал один вызов API при создании объекта «Счет-фактура», который либо будет успешным, либо неудачным и облегчит управление связью между клиентом пользовательского интерфейса и API.