尝试将一个项目与另一个项目关联但已关联时的 HTTP 响应代码

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

我想知道在以下情况下哪个是 HTTP 响应代码的最佳选择:

有一个 POST / PUT REST API,使用 1-1 要求(一对一)将一个资源(我们称之为源项目)与另一个资源(我们称之为目标项目)相关联。

如果源项已与另一个资源关联,则 API 应返回错误。如果源项尚未与任何资源关联,但目标项已关联,则 API 应该通过替换目标的当前关联来成功。

我要使用 409 冲突,但由于它表示 目标资源中存在冲突,我不确定它是否是最合适的。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409

rest http-status-codes
1个回答
0
投票

我的解释是客户端不应该发送此类请求,因为源项目不应事先绑定到任何目标项目。
所以状态代码实际上来自 4xx 系列。

阅读 409 ConflictMDN 文档 并没有给出很多解释,但您可能会发现与您的上下文有相似之处。 绑定源实体和目标实体的请求确实与源实体的当前状态冲突(因为它已经绑定)。

对我来说,您的服务器应该响应 409 冲突,并详细说明如何解决您的问题(取消绑定目标实体的源实体)。

© www.soinside.com 2019 - 2024. All rights reserved.