当外部客户端推送重复数据时,哪个是最好的状态代码或 api 设计?

Which is the best status code or api design when an external client pushes duplicate data?

我们与外部客户端集成,通过 REST API.

将数据推送到我们的系统中

对于与有效负载(数据传输对象)相关的验证问题,我们 return 422 Unprocessable Entity 如果有不准确的地方。

现在,当我们有添加新用户这样的场景,而这个用户存在于数据库中时,我们也认为这是一个验证错误,我们不允许客户端提交用户信息,因为它是已经坚持了。

422 状态代码对于我们想要避免重复记录的此类场景是否有效?

我觉得422绝对适合这种场景。据我所知,没有描述无效负载的状态代码,因为它是重复的。

编辑: 我不知道409,但似乎更合适。

我将在这种情况下使用的状态代码是 409409 用于请求正文有效的情况,否则为有效请求,但服务器的当前状态阻止请求成功。

我写了更多关于 409 here