对于不符合服务器数据限制的数据,return 的状态代码是什么?

What status code to return for data that doesnt fit the server's data constraints?

当有人向我发送一个包含太多 many/invalid 个字符的字段,或者一个已经被占用的电子邮件,或者一个名字的数字时,我总是发回 400 并列出字段验证错误。

这样做正确吗?通读所有 400s here 开始让我质疑 "I understand the data, I understand the content-type and your headers, but I can't put this in my database".

的正确表达方式

考虑使用 422,这意味着请求的总体布局是正确的,但无法处理其内容。

我通常在描述的场景中使用 422。否则,我会回复 400.