内部依赖项失败的HTTP状态代码

时间:2019-04-09 06:26:36

标签: http http-status-codes

我将用一个简单的示例来描述我的问题,我有2个表(XY):

      Table X             Table Y
------------------       ----------
| id  |   Y_id   |       |   id   | 
------------------       ----------

我的API路由将从table Y中删除一行,但是如果表X正在使用该行怎么办,例如,这种情况:

      Table X             Table Y
------------------       ----------
| id  |   Y_id   |       |   id   | 
------------------       ----------
|  1  |     1    |       |    1   |
------------------       ----------

如果我请求从1删除ID为table Y的行,我将拒绝该请求,因为该条目正在table X中使用,那么响应HTTP状态代码应为这种情况?

1 个答案:

答案 0 :(得分:1)

https://greenbytes.de/tech/webdav/rfc7231.html#status.409

  

6.5.8。 409冲突

     

409(冲突)状态代码表示由于与目标资源的当前状态冲突而无法完成请求。此代码用于用户可能能够解决冲突并重新提交请求的情况。服务器应生成有效载荷,该有效载荷应包含足以使用户识别冲突根源的信息。

     

响应PUT请求最有可能发生冲突。例如,如果使用版本控制,并且PUT表示中包含对资源的更改,该更改与早期(第三方)请求所做的更改冲突,则原始服务器可能会使用409响应来指示它无法完成请求。在这种情况下,响应表示可能会包含有用的信息,这些信息可用于根据修订历史记录合并差异。