返回包含状态端点的“ 202”时,该端点应返回什么状态代码?

时间:2020-07-31 16:24:13

标签: rest

我有一个接受请求的API。这些请求的运行时间很长,所以我返回一个202 Accepted并说“如果您想知道状态,请查看http:// blah / jobstatus / 1234”

http:// blah / jobstatus / 1234应该返回什么返回码? (状态快速且易于提供)

应该返回200并使用资源描述任务状态,还是应该返回另一个202,如果任务仍在运行,然后 一个200(或201)?

我认为它应该返回一个200,因为用户正在请求代表工作当前状态的资源。

This page涵盖了您应该为长期运行的产品返回202 ,但没有涵盖状态端点应返回的内容。

3 个答案:

答案 0 :(得分:3)

状态端点本身应该只返回200 OK

这是因为此端点描述的是有关操作的信息,而不是操作本身。并立即完成该信息的获取,而不是最终完成。

答案 1 :(得分:1)

在我看来,状态地址应该只返回预期的内容(运行/完成或您提供的任何内容)。如果您已经提供了这些信息,那么除了提供所提供的响应外,还要使用其他http状态代码。

就像您说的那样(状态很容易提供),那么为什么还要花200来打扰呢?这似乎是最简单的事情,只要不落水就行。

答案 2 :(得分:1)

返回包含状态端点的202时,该端点应返回什么状态代码?

状态代码属于transporting documents over a network域。

GET /jobstatus/1234

这是一个请求,要求提供/jobstatus/1234资源的当前表示形式。如果服务器具有该资源的当前表示形式,则应返回该表示形式,200 OK状态代码以及任何适当的元数据...

就像网络上的其他页面一样。

/jobstatus/1234是描述正在进行的过程的资源这一事实并没有使它变得特别。它仍然只是一个文档,应该按照标准进行响应。