Java Rest错误代码/成功代码

Java Rest错误代码/成功代码,java,rest,http,jersey,Java,Rest,Http,Jersey,我正在使用jersey进行REST项目。如果成功,我将返回200个代码以及特定请求的json响应。我知道错误代码可能有不同的分类,比如以500开头的服务器错误,以400开头的客户端错误等等。我的问题是假设我们减去数据库中的某个值,例如count,例如数据库中的count是5,请求减去3,它是有效的,我将发送请求,但我的业务规则规定计数不能小于零,所以如果请求为6,我不能减去它,所以在这种情况下,我应该实际发送状态代码为200,发送错误信息为json响应{“errorCode”:“1”,“erro

我正在使用jersey进行REST项目。如果成功,我将返回200个代码以及特定请求的json响应。我知道错误代码可能有不同的分类,比如以500开头的服务器错误,以400开头的客户端错误等等。我的问题是假设我们减去数据库中的某个值,例如count,例如数据库中的count是5,请求减去3,它是有效的,我将发送请求,但我的业务规则规定计数不能小于零,所以如果请求为6,我不能减去它,所以在这种情况下,我应该实际发送状态代码为200,发送错误信息为json响应{“errorCode”:“1”,“errorMessage”:“}因此,我应该发送不同的HTTP状态代码,如5###表示存在服务器问题或4##表示请求不正确


有谁能推荐我在github上的好的(从restful和遵循所有标准的意义上)REST项目,我可以参考。

在您提到的特定用例中,您应该返回400作为状态代码(坏请求)。json中的errorCode是您的业务域,因此您可以使用您想要的(另外,请查看用于在响应中发送http“error status”的JSend标准)

在您提到的特定用例中,您应该返回400作为状态码(错误请求)。json中的errorCode是您的业务域,因此您可以使用您想要的(另外,请查看JSend标准,用于在响应中发送http“错误状态”)

您完全正确:您应该发送http“400”表示客户端错误,发送“500”表示服务器错误,等等;以及特定的错误消息

您可能需要也可能不需要更精细的HTTP状态代码(例如,“403”表示客户端身份验证失败,否则“400”表示其他客户端相关错误)

以下是两个很好的指导列表:

注:

本身没有“标准”。我上面给出的两个链接是有用的“示例”。HTTP 1.1错误代码的“官方”IETF RFC是RFC 2616:


你完全正确:你应该发送HTTP“400”表示客户端错误,发送HTTP“500”表示服务器错误,等等;以及特定的错误消息

您可能需要也可能不需要更精细的HTTP状态代码(例如,“403”表示客户端身份验证失败,否则“400”表示其他客户端相关错误)

以下是两个很好的指导列表:

注:

本身没有“标准”。我上面给出的两个链接是有用的“示例”。HTTP 1.1错误代码的“官方”IETF RFC是RFC 2616:


如果在请求处理过程中发生任何错误,您不应发送
2XX
状态代码。为什么?因为
2XX
表示在此特定情况下未发生的成功处理

当您发送一个要从另一个DB值中减去的值,并且假设结果不能低于0时,您应在响应正文中回复
409冲突
HTTP状态代码和说明,例如:

无法完成请求,因为结果值将低于0


如果发送的是
400错误请求
,例如
null
,而不是数字。

如果在请求处理过程中出现任何错误,您不应发送
2XX
状态代码。为什么?因为
2XX
表示在此特定情况下未发生的成功处理

当您发送一个要从另一个DB值中减去的值,并且假设结果不能低于0时,您应在响应正文中回复
409冲突
HTTP状态代码和说明,例如:

无法完成请求,因为结果值将低于0


如果发送的是
400错误请求
而不是数字,则为
400错误请求
。因此,这意味着如果用户发送无效请求,如负计数等,则应为错误请求,但如果我没有所需计数,则不是用户的错误,因此应发送409,仅当用户根据合同要求通过请求实现任何目的时,才应发送200!所以这意味着如果用户发送无效的请求,如负计数等,这应该是坏的请求,但如果我没有所需的计数,那么这不是用户的错,所以应该发送409,只有当用户打算通过请求实现的任何事情发生时,才应该根据合同发送200!