Из моего понимания я бы разработал
@PostMapping("/users")
и
@PostMapping("/locals")
где создаются объекты.
Если оба творения будут успешными, вы можете обновить user
как
@PutMapping("/users/related-locals")
Конечно, вы также можете сделать
@PutMapping("/locals/related-users")
Если вам нужно создать user
за одну операцию (напрямую подключив related-locals
), вам потребуется
- сначала создать
local
,
- получить
id
или link
вновь созданного local
- создайте
user
и добавьте id
или link
под related-locals
к нему в клиенте и POST
it.
Это означает, что если по какой-то причине создание user
завершится неудачно, в вашей базе данных будет висеть locals
.
Другая возможность - Multipart . С Multipart вы можете иметь два разных объекта в одной и той же RequestBody.
@PostMapping("/users")
может принять такой составной запрос, в который включены user
и locals
. Ваша серверная реализация должна была бы тогда предположить, что эти locals
отображаются на related-locals
в user
и создать их на стороне сервера и добавить их к user
(id
или link
, как раньше ). В случае сбоя какой-либо операции вы можете откатить весь запрос и сохранить базу данных в чистоте.