我們在API設計中存在一點模棱兩可的問題,特別是一對多關聯。一對多關聯REST API
場景:
學生 - 擁有衆多 - 圖書(一對多)
應如何API看看書分配給student
?預期的行爲是從現有的中刪除一些並向現有的添加新的。
[POST] /students/1234/books
- 不允許的(如書籍可以分配給其他用戶以後可能適合於支持票和評論的場景。)
[PUT] /students/1234/books
- 從實際的觀點REST API點,它是修改該集合比集合內的實體。
現有的學生書籍:[{id:1, name:’REST1’, author:’Satish’, year:2003}, {id:2, name:’REST2’, author:’Satish’ , year:2003}]
修改學生書籍:[{id:2, name:’REST2’, author:’Satish’ , year:2003}, {id:3, name:’REST3’, author:’Satish’ , year:2003}]
- 一個刪除和一個新增加的。
現在這個功能可以通過只發送book id列表來實現,如下所示。但這更多的是一種行動,而不是資源導向。另一方面,發送用於映射的書籍對象列表對於移動客戶端查看可用帶寬來說將非常繁重。
請求負載:[1, 2, 4]
是否有適應於行業這樣問題的做法?