gpt4 book ai didi

api - 由于存在匹配资源导致资源创建 POST 失败时的 HTTP 响应代码

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

假设我们有一个 API,可以通过 POST 来创建一个新的 Employee

www.example.com/api/employees

员工可以描述为,

{
name: "John Smith",
tax_number: "ABC123"
}

税号对所有人来说都是独一无二的。如果进行了创建,并且名称和税号与现有记录相匹配的记录已经存在,则可以安全地假设请求者希望返回对该记录的引用(及其内部 ID 和客户可能不希望的其他数据)例如,创建于、更新于)。

返回该资源的 HTTP 状态代码是什么?我想重定向可以与仅返回 ID 一起使用,但我更愿意将整个对象包含在响应中。

这种情况是简单重复错误所特有的,从某种意义上说,如果尝试重复,则意味着您要创建的记录已经存在,而不是与现有记录冲突。

最佳答案

我认为如果您将资源发布到 API,您会期望代码 201 表明资源已创建,并且正文将(可以)包含该资源。否则,您首先必须检查资源是否已创建,但这需要两次调用。

否则,您的状态码为 409:

The request could not be completed due to a conflict with the current state of the resource.

[编辑] 在阅读了 amundsen、Ruby 和 Richardson 的 Restfull Web Apis 之后

最好使用 409 状态代码,表明与服务器上存在的资源存在冲突。将那个“冲突”资源的 url 放在响应的位置 header 中,并在正文中添加冲突消息

关于api - 由于存在匹配资源导致资源创建 POST 失败时的 HTTP 响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25541203/

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