API 失败的状态代码,之前启动的作业

API status code for failed, previously started job

我正在写一个 API,用户可以在其中创建一个作业,并通过对 /jobs 的 POST 请求进行处理。此 return 是一个带有 ID 的 201,用户以后可以使用它来检查作业的状态。

在处理作业时,对 /jobs/{id} 的 GET 返回 204。如果作业完成,return返回 200 和结果。

我不确定在由于某种原因处理作业失败的特殊情况下 return 的状态代码是什么。我不想 return 204 因为那是针对仍在进行的工作,而不是 404 因为工作 存在 (即 ID 有效)但它只是没有成功完成。我得到的最接近的是 500,但是 API 在处理请求时没有遇到问题,它知道作业失败了。我只是不知道如何最好地与状态代码进行通信。

是的,您不能使用 4xx 代码,因为它们是客户端错误。另外 5xx 不是变体,因为在实际处理状态请求期间没有错误。

HTTP 代码不适合这种情况,因此最好使用您自己的方法来 return 带有 200 状态代码的错误消息。如果您仍想为 returning 结果使用 HTTP 状态,您可以检查 205 Reset Content 代码。