我们有像 pluralsight 这样的网站供作者和客户注册。作者发布他们的类(class),客户可以给这些类(class)打分。表结构如下:
作者表:(保存作者基本信息:一一对应)
作者编号 |姓名 |联络 |电邮 |评分
1 |萨希尔 | 9971343992 | shaf@gmail.com | 3.2
authorRating:(保存客户给作者的评分:一对多)
编号 |作者编号 |客户编号 |评分 |
1 | 1 | 101 | 2.7
2 | 1 | 201 | 3.7
当在 authorRating 表中插入/更新/删除某些记录时,作者表中的评级也会更新。有一些复杂的算法可以根据 authorRating 表记录在 author 表中最终确定评级。
我们为此创建了以下 API:
PUT api/author/1/rating/:如果 authorRating 表有任何变化,我们将重新计算该作者的评级并触发此 API 以通过新评级。这接受评级并添加/更新作者表中的评级。如果 author 表没有 id=1,则返回验证错误
DELETE api/author/1/rating/:这会删除作者 id=1 的评级,即将其设置为 NULL。如果 author 表没有 id=1,它会返回验证错误。
这是正确的 API 设计吗?或者我们是否应该只公开 PUT API,如果他们在 PUT API 中将评级发送为空,我们将在作者表中将其设置为空?
或者我们应该考虑在这里使用 PATCH 吗?
最佳答案
就你只修改一个结构的字段而言,我认为 PATCH 更适合这里,但它应该发送到父资源:
PATCH api/author/1
关于休息 API : Should we use PUT or DELETE to update resource partially?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47813369/