温馨提示:本文翻译自stackoverflow.com,查看原文请点击:REST API - Update relationship between entities
entity-relationship rest updates

REST API - 更新实体之间的关系

发布于 2020-04-25 21:26:41

这是通过我的API向作者添加图书的方式:

PUT /authors/1/books/1/

我现在想将这本书改成另一位作者。

我怎样才能做到这一点?我在考虑以下选项。

1-使/ author和/ books都是顶级资源。例如,使用书籍的属性来控制书籍的作者authorId: 2例如,在主体中PUT /book/1设置authorId: 2其他属性。

2-执行PUT /authors/2/books/1/,将现有作者的书更改为2。使用这种方法,我应该检查该书是否已存在。如果存在,我会更新作者和其他属性,如果不存在,我会创建一本新书。

就最佳实践而言,哪个是最佳选择?第二种选择是胡扯吗?

查看更多

提问者
Mr. Mars
被浏览
52
James 2020-02-09 05:07

两者都是唯一可识别的,因此两者都应本身就是资源,即

GET /authors/1
GET /books/1

因此,您建议IMO的第二种选择似乎是最明智的,即

PUT /books/1

{ authorId: 2 }