当要求更新未找到或未更新的记录时,应该将http返回给客户端的内容是什么?

问题描述 投票:0回答:1

我正在使用一个mysql库,当我对数据库执行更新时,如果得到一个代表1/0的数字代表:

if record was not found 0 returned

if record found and something was changed 1 returned

if record found and nothing was not changed 0 returned

因此,我希望在找到记录并更改某些内容时返回使用200,并且我试图想如果结果为0,我应该如何返回用户?它应该是200吗?也许用户应该知道找不到记录......

事情是我不想打更多的电话,看看是否有记录,然后执行更新,我想保持它尽可能少的电话...

谢谢!

rest http
1个回答
0
投票

你理想的情况应该是:

  • 如果记录成功更新,请使用200 OK / 204 No Content
  • 如果没有找到记录,404 Not Found
  • 如果记录没有更新,409 Conflict

现在你的主要问题听起来像“服务器无法确定更新失败的真正原因”。原因服务器无法做到这一点,它无法决定是发送404还是409状态。

有了这一切,您现在的情况是,如果服务器返回任何状态而不是OK(200/204),则客户端不知道更新期间发生了什么故障。而且这个强制客户端无论如何都会做出额外的请求以确定真正的原因


为避免对每个请求进行额外的服务检查,您可以做的是验证资源是否存在,仅用于失败的情况。换一种说法

  • 更新查询 - >如果查询返回0,请执行另一个选择查询以检查现有资源
© www.soinside.com 2019 - 2024. All rights reserved.