Нужно ли создавать отдельный URL для регистрации «Компании» вместе с ее «Владельцем»?

Проблема такова - есть две модели User и Company. К ним подвязаны URL'ы .../api/users и .../api/companies/ соответственно. У одной компании много пользователей и один из них, по логике вещей, является ее владельцем (у пользователя есть ForeignKey company указывающий на компанию к которой он принадлежит, а так же атрибут role который говорит какую должность он там занимает). Требования таковы, что пользователь не может не принадлежать ни одной компании. Это решено с помощью эдпоинта .../companies//users/ с которого можно создавать пользователей которые сразу будут относиться к той или иной компании. Но компания тоже не может быть без владельца, а создавать бесхозных пользователей уже нельзя. Следовательно требуется создавать компанию и владельца этой компании одновременно, то есть при регистрации компании. И тут возникает вопрос - можно ли создавать пользователя вместе с компанией в запросе POST .../api/companies/ и просто через options просить присылать еще и данные пользователя, или вообще создавать отдельный URL под регистрацию этих двоих. Первый вариант, на мой взгляд, полностью ломает идею RESTful API, хотя я могу и ошибаться так как в REST'е я новичок, но идея, что эндпоинт, отвечающий за создание компаний , теперь в довесок берет на себя ответственность за создания пользователей меня коробит.
  • Вопрос задан
  • 301 просмотр
Решения вопроса 1
@iegor
Если User связан с Company по форейн кею, то если Company не существует, то и юзера нет, значит когда мы шлем post на .../api/companies/ нам необходимо создать юзера, а значит первый вариант неплох. Правда это все разумно только, если у user'а нет возможности сменить компанию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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