哪个HTTP代码应该作为状态返回?

时间:2018-04-13 15:06:07

标签: javascript java rest api

我需要创建REST API端点,我不确定哪个HTTP代码作为状态返回。

接下来的要求:
- 我的API应接受URL作为参数
- 对第三方服务进行API调用(使用URL),并获得响应
- 返回响应(从第三方服务获取的内容)

在某些情况下,一切正常。调用外部服务,它返回内容和状态代码200.

但是,有时候没有内容,它会返回404.(重要的是,将来可能有内容可供使用。)
从我的系统来看,这是正常情况。

我应该返回哪个HTTP代码?
202 - 接受
204 - 无内容
206 - 部分内容
或其他什么?

3 个答案:

答案 0 :(得分:1)

  

404 Not Found

     

找不到请求的资源,但将来可能会提供。客户的后续请求是允许的。

在REST-API中,请求和响应应仅适用于当前的“调用”。如果内容当前不可用,则应返回404状态。并且它(404)是应该返回的确切状态。

但是,如果您想弯曲规则,204状态代码似乎更合适。我不建议你这样做。

  

204无内容

     

服务器成功处理了请求,但未返回任何内容Link

答案 1 :(得分:1)

创建临时资源,而不是创建实际资源。您可以发出202(已接受)响应代码,而不是返回201(已创建)HTTP响应。这通知客户端服务器已接受并理解该请求,但尚未创建资源。

From: http://restcookbook.com/Resources/asynchroneous-operations/

答案 2 :(得分:0)

除非您的系统将其包装并处理并更改状态,否则您应该返回第三方服务返回的HTTP状态代码。