用于创建和更新的 Rest API

use*_*273 7 rest http

在 REST api 中处理创建和更新请求的首选方式是什么?

在我的前端,我使用相同的表单来创建和更新,唯一的区别是,在更新时,会填充带有 id 的隐藏表单字段。

是否可以使用 POST 方法将两个请求发送到 /api/post 并根据 id 决定是否发布或更新?或者应该以其他方式处理?

ohk*_*s11 6

如果您想遵循 REST 原则,最好像下面这样分隔端点。

\n
POST  api/collections       (e.g. api/users)\nPUT   api/collections/:id   (e.g. api/users/23)\n
Run Code Online (Sandbox Code Playgroud)\n

分离端点有两个原因。

\n
    \n
  • PUT 必须是幂等的,而 POST 则不然。

    \n
  • \n
  • 如果资源的 URL(如 api/users/23)已存在,\n请使用 PUT。如果没有,则发送 POST 并让服务器生成\nURL。(很多情况下是使用DB\xe2\x80\x99s自增键)

    \n
  • \n
\n

当然,是否遵循 REST 原则由您决定。

\n

参考\n https://restcookbook.com/HTTP%20Methods/put-vs-post/

\n