考虑 /v1/api/people/{id}
端点处理get、put和delete操作,其中 id
是一个整数。
我想知道下面的两个案例应该如何处理?
a) 是的。通过时 id
数据库中不存在,例如。 id = 100
但没有这种身份的实体
b) 是的。通过时 id
类型错误,例如它是字符串 "oops"
想象一下,就实际应用程序而言,上述两个错误实际上从未发生过(例如,应用程序具有“正确”的工作流和一些客户端验证)。
但是,我仍然可以造成上述错误,比如说 Postman ,或者如果将来有什么变化,对吗?我想在将来防止这些错误。
它应该保留为http500还是应该处理为http400或http404?http 500是否可以接受?
1条答案
按热度按时间pokxtpni1#
http 500-应用作内部服务器错误,这意味着服务器端发生了意外情况。。理想情况下,上述错误应该是验证的一部分,因为它们是已知的场景
a) 是的。当传递的id在数据库中不存在时,例如id=100但没有这样的id实体
在这里,您应该返回404(未找到)与错误消息,如'资源与id 100不存在删除/更新等',使其用户友好
b) 是的。当传递的id类型错误时,例如,它是一个字符串“oops”
这里您应该显示400(badrequest),因为用户没有按照资源id协议传递值。