Как создать или обновить отношения многие ко многим с помощью RESTful API - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь понять, как именно работают отношения многие ко многим.

Допустим, у меня есть модели Movie и Actor. Actors принадлежат многим Movies, а Movies имеют множество Actors. Я понимаю, что могу создать таблицу MovieActor, содержащую внешние ключи от Movie и Actor. Часть, которая мне не совсем ясна, заключается в том, хочу ли я создать новый Actor и связать его с Movie (POST) или обновить существующий Actor, чтобы связать его с Movie ( PUT), я использую свою конечную точку /api/actor или создаю отдельную конечную точку для /api/movieactor?

1 Ответ

0 голосов
/ 05 мая 2018

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

И я думаю, что люди, как правило, рекомендуют не использовать третий API только для получения данных о взаимосвязи между двумя основными объектами. Это только усложняет клиентский API, увеличивает задержку и предоставляет клиенту слишком много внутренних компонентов БД (что усложняет изменение в будущем).

...