gpt4 book ai didi

rest - "@unique"违规的最佳返回码是什么?

转载 作者:可可西里 更新时间:2023-11-01 15:08:04 26 4
gpt4 key购买 nike

我正在使用 Hibernate 支持的后端开发 RESTful Web API。到目前为止,我们已经映射了一些错误代码。例如,当@Version 验证失败时,我们的 API 会返回 HTTP 错误代码 409。

现在,我们需要映射唯一验证失败时要返回的最佳错误代码。例如,我的 API 有一条业务规则,规定实体 A 的两个实例不能同名。例如,如果我的数据库中有一条名称为“XYZ”的记录,则我无法在数据库中创建另一条同名“XYZ”的记录。在这种情况下最好的返回码是什么? 409也是?

我在“REST in Practice”一书和谷歌上做了一些研究,409 似乎主要与@Version 相关,我无法引用 409 用于唯一验证。

非常感谢任何帮助!谢谢!

最佳答案

我会首先考虑422 Unprocessable Entity :

The 422 (Unprocessable Entity) status code means the server
understands the content type of the request entity, and the
syntax of the request entity is correct but was unable to process the containedinstructions.

在这种情况下,包含的说明是“请创建此新资源”。

409 Conflict也经常使用,其论点是资源的存在与创建新资源的尝试相冲突:

The 409 (Conflict) status code indicates that the request could notbe completed due to a conflict with the current state of the targetresource. This code is used in situations where the user might beable to resolve the conflict and resubmit the request.

此响应代码的其余解释是关于解决冲突,这在您的情况下是不可能的。这就是为什么我倾向于远离这个响应代码。

第三个选项是 403 Forbidden :

The 403 (Forbidden) status code indicates that the serverunderstood the request but refuses to authorize it. [..] However, arequest might be forbidden for reasons unrelated to thecredentials.

大多数人都被身份验证的影响吓跑了这段代码,但文本清楚地表明它适用于其他情况。

如果没有关于您的系统的更多信息,没有人能够告诉您要使用的确切正确代码。查看这些响应的定义,然后选择最能满足您需求的一个。无论您选择哪个响应代码,请确保响应实体清楚地概述了问题,以便客户可以更正它。

关于rest - "@unique"违规的最佳返回码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25015592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com