我开始学习API,并且将我最近的知识与Django REST Framework结合使用,并且在最后几天产生了一个疑问,即如何使用RESTful API处理前端的多种关系。
假设我有五个模型:Artist
,Record
,Genre
,Music
和Playlist
,它们是相关的,并且我有一个单一的形式客户/艺术家将填写包含他们的个人信息(艺术家模型)和有关他们制作的作品的信息(唱片,流派和音乐模型),除了创建播放列表外,最后一个是单独的表格。
关系:
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修改为前端的想法。)?
最后,Playlist
和Record
的端点应该不是冗余或双向的吗?我应该如何在POST方法中处理它?请记住,播放列表不是以艺术家,唱片或音乐的相同形式创建的。