通过RESTful API报告服务状态时要使用的HTTP状态代码?

时间:2015-07-01 11:27:29

标签: rest http http-status-codes

我正在创建一个RESTful API,允许客户端检查特定服务是否正在运行。 编辑:请求地址看起来像这样 - / services / 123 / running

可能的返回值是:

  1. 确定(HTTP 200) - 服务存在且正在运行
  2. 未运行(HTTP ???) - 服务存在,但未运行
  3. 未找到(HTTP 404) - 服务不存在
  4. 应该使用什么HTTP状态代码来通知客户端服务确实存在,但目前还没有运行?

    编辑:经过更多研究后,我发现了一个有点涉及同一主题的stackoverflow讨论 - What is the appropriate HTTP status code response for a general unsuccessful request (not an error)?

1 个答案:

答案 0 :(得分:1)

您不希望为此使用HTTP状态代码。它们用于表明请求是如何进行的。

相反,您应该在响应正文中传递状态。如果请求(检查服务的状态)没有问题,那么HTTP状态代码应该始终为200,唯一不同的应该是正文。

示例:

  

服务存在且正在运行

Status code 200 Ok
Body {"status": "exists and running"}
  

服务存在,但没有运行

Status code 200 Ok
Body {"status": "exists, not running"}
  

服务不存在

Status code 200 Ok
Body {"status": "doesn't exist"}