如何使用RESTful API处理表单上的多个关系

时间:2018-08-01 04:46:05

标签: rest api architecture django-rest-framework relationship

我开始学习API,并且将我最近的知识与Django REST Framework结合使用,并且在最后几天产生了一个疑问,即如何使用RESTful API处理前端的多种关系。

假设我有五个模型:ArtistRecordGenreMusicPlaylist,它们是相关的,并且我有一个单一的形式客户/艺术家将填写包含他们的个人信息(艺术家模型)和有关他们制作的作品的信息(唱片,流派和音乐模型),除了创建播放列表外,最后一个是单独的表格。

关系:

Artist  1 -- N  Genre
Artist  1 -- N  Music
Artist  1 -- N  Record 
Playlist N -- N  Music

端点:

/artists/:id/
/artists/:id/genders/:id/
/artists/:id/musics/:id/
/artists/:id/records/:id/

因此,我的疑问是,如何在表单(前端)上处理它?或者,如果我只有一个表单并且想要一个提交,那么最佳实践是什么?

我应该为每个模型创建五个端点,并使用超链接和ID按顺序发布五次(我担心此选项是如何保证操作的原子性)。还是应该在Artist端点中使用嵌套关系并进行一次POST(我担心的第二种选择是污染数据收集以及我将API修改为前端的想法。)?

最后,PlaylistRecord的端点应该不是冗余或双向的吗?我应该如何在POST方法中处理它?请记住,播放列表不是以艺术家,唱片或音乐的相同形式创建的。

0 个答案:

没有答案