2016-12-16 90 views
0

我们有一个REST服务,其中对请求的响应可能是错误消息。一个简单的例子是请求是一个计算公式,公式可能会除以零。在这种情况下,响应是错误代码和错误消息。当响应数据是错误消息时,我们应该在REST响应中使用什么响应代码

所以与REST服务的通信都很好。服务本身正在响应请求。但是,响应是一个错误消息,而不是预期的结果。

在这种情况下,最好的响应代码是什么? 200来说,整个通信过程是好的,我们查看返回的JSON以确定它是否是一个错误? 500表示这是一个错误,但后来看看我们是否有预期的JSON来确定它是计算中的错误?其他一些代码表示我们正在从服务器获取响应,但响应是错误消息?

+0

如果计算是用户输入的结果,则50x听起来不对。 40x代码似乎都不适合,所以我会用普通的400. –

回答

1

一个简单的例子是该请求是一个公式来计算和公式可以通过零具有分频。 [...]在这种情况下,最好的响应代码是什么?

我会使用422无法处理的实体

的422(无法处理的实体)状态代码表示的服务器理解的请求实体(因此一个415(不支持的媒体类型)的状态码的内容类型是不恰当的),并且请求实体的语法是正确的(因此400(错误请求)状态码不合适),但无法处理包含的指令。例如,如果XML请求体包含格式正确(即,语法正确)但语义错误的XML指令,则可能会出现此错误情况。

不要依赖在HTTP代码,无论如何,总是在身体添加错误的描述。我认为通常的做法是让所有终端以success(true或false)和error(带有错误消息)的方式回复JSON,如果success为false,或者data(结果为),如果成功为true。

+0

谢谢 - 这正是我们正在寻找的! –

相关问题