我将用一个简单的示例来描述我的问题,我有2个表(X
和Y
):
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状态代码应为这种情况?
答案 0 :(得分:1)
https://greenbytes.de/tech/webdav/rfc7231.html#status.409:
6.5.8。 409冲突
409(冲突)状态代码表示由于与目标资源的当前状态冲突而无法完成请求。此代码用于用户可能能够解决冲突并重新提交请求的情况。服务器应生成有效载荷,该有效载荷应包含足以使用户识别冲突根源的信息。
响应PUT请求最有可能发生冲突。例如,如果使用版本控制,并且PUT表示中包含对资源的更改,该更改与早期(第三方)请求所做的更改冲突,则原始服务器可能会使用409响应来指示它无法完成请求。在这种情况下,响应表示可能会包含有用的信息,这些信息可用于根据修订历史记录合并差异。