休息 API : Should we use PUT or DELETE to update resource partially?

标签 rest api http restful-architecture

我们有像 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/

相关文章:

rest - Golang gorilla mux REST api 在使用 PUT 和 DELETE 方法时出现 405 错误

java - java中rest API的身份验证失败错误

java - 使用 UriBuilder 从 XmlAdapter 创建绝对 URI

rest - 在 Web 应用程序中存储用户名和密码

http - 使用 HTTP 模块在 ASP.NET 3.5 和 IIS 7 中重写 URL

jquery - 使用 jQuery 将内容从 HTTP 页面加载到 HTTPS 页面

python - celery 、uvicorn 和 FastAPI

javascript - Node.JS:处理服务器每分钟最大请求的最佳方式

api - Paypal 内部服务器错误休息批准付款

http - 将 http 流量暂时重定向到另一台服务器