我的服务需要一些实体,需要保存/更新这个实体:
http://myhost.com/rest/entity
我使用POST并提交JSON。在内部服务中,它检测到传递的实体不好。无效,订单传入不存在的客户等等。
我该如何回复? HttpCode.NotFound
?或者其他人?你怎么回答这些事情?
答案 0 :(得分:29)
422 Unprocessable Entity, defined in WebDAV (RFC 4918):
422(不可处理实体)状态代码表示服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法是正确的(因此400 (错误请求)状态代码不合适)但无法处理包含的指令。例如,如果XML请求主体包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现此错误情况。
答案 1 :(得分:25)
在我们的项目中,我们执行以下操作:
{"message":"%extended error message here%"}
但这确实非常主观。
此外,我建议阅读This blog article on RESTfull error handling - 它描述了许多可用的选项,因此您可以根据自己的喜好选择一些内容。
答案 2 :(得分:1)
我认为你应该选择client error code。 400 Bad Request 或 403 Forbidden 可以是一个好的开始