- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 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/
与其说这是一个技术问题,不如说是一个政策问题。 开发应用程序时,如果附属机构提供的链接构成您内容的一部分,您是否可以显示该链接?例如,专门用于从 Affiliate Window 查找特定流派黑胶唱片
我是一名优秀的程序员,十分优秀!