让我们假设有一个HTTP POST,它接受JSON和一些数据作为输入,并且它必须验证这些数据。该方法还应在响应正文中返回验证消息。
前任。
{
"A" : 1,
"B" : 1,
"C" : 3
}
假设在JSON上定义了一些验证规则,例如(ab)应该小于C参数。
我对HTTP状态代码有一些疑问。
但是如果JSON是有效的(有所有请求的参数和类型是正确的),但是参数不遵守定义的规则(A B)
是否需要区分HTTP状态和验证规则状态?
干杯
您的响应需要是400,并有以下消息:“错误请求:参数不尊重规则”。400错误
这完全取决于您想要实现的用例/功能。
如果您想让其他人更容易处理有效的消息,只有当消息完全有效时,我可能会返回2xx
,并且在所有其他情况下返回4xx
。在这种情况下,调用方不需要解析结果,这使得处理变得容易。
如果用例是提供一些其他人将用于分析消息的分析服务,而不是专门用于分析消息本身,那么我将返回分析结果2xx
,除非消息无法解析(例如不是json),在这种情况下,4xx
是有保证的。
这就是状态代码422(“不可处理实体”)的设计目的。
看见https://www.greenbytes.de/tech/webdav/rfc4918.html#STATUS_422.
我使用curl获取http头以查找http状态代码并返回响应。我使用以下命令获取http头
我想知道在REST API中应该如何响应。 有效示例: 以上是一个有效的请求,当前我的HTTP状态为200,有一个JSON响应
我试图创建一个regex来捕获HTTP状态代码和curl请求的主体。下面的regex模式可以在多个在线站点上工作,但在我的Mac命令行上的shell if-语句中不匹配。是我的regex关闭了还是有其他事情发生? 我也对其他方法持开放态度(我的目标是运行Centos5的机器)。
如何从的结果中获取HTTP状态?
我希望返回http状态代码和响应对象。如果我只是在失败场景中返回response object,则状态返回为200。但是我希望将服务返回的状态(例如:403)与响应对象一起发送。但是下面的代码只是返回消息和状态。在这种情况下,我想要响应对象orderdetails对象,它有失败原因和其他字段。如何将对象传递回客户端有什么帮助吗?
我正在使用apache的HttpClient(通过Fluent API)。当我获得响应对象时,我首先执行以下操作: 如果状态代码为4xx或5xx,我将抛出异常,或者返回内容: 这里是类型为的对象。但当我运行此程序时,我得到: 我怎样才能避开这件事?