RESTful POST请求,如果POST数据上已存在记录,我们是返回200 OK还是304 Not Modified?

Man*_*ddy 10 rest http

我有一个POST请求端点,用户重复发布数据.在我将数据插入数据库之前,根据用户请求,我会检查记录是否已经存在. - 如果记录已经存在,我返回200 OK,包含table_id和状态的响应主体 - 如果记录不存在,我创建新记录并返回200 OK,包含table_id和status的响应主体

基本上在这两种情况下,用户获得状态200.由于用户无法区分其是新记录还是现有记录,因此可能会令人困惑.

我以为我会将304返回给响应主体,并告知消费者该请求是"未修改",这样消费者就会做出决定.

这是一个好习惯还是在RESTful主体中有替代方法.

Rem*_*eau 10

304仅用于条件 GET响应,以指示自上次客户端请求以来所请求的内容未发生更改.它不适合POST做出回应.

对于POST响应,请使用201是否创建了新记录,否则使用200或可能409改为使用.

有关设计REST API的一些有用提示,请参阅以下内容:

使用HTTP 304响应POST

资源已存在时POST的HTTP响应代码

使用HTTP创建高效的REST API

学习REST课程:避免204个回复