对于正在工作的REST后端,我们有一个有趣的案例,其中初始化我们的实体之一的过程是异步的(不幸的是,我们对此无能为力)。由于初始化方法是异步的,因此,如果尚未初始化实体,则更改此方法的REST端点可能会失败。
为避免当实体在后端准备就绪时进行轮询,我正在尝试是否使用状态码409
+ Retry-After
标头。这个想法是,如果客户在异步初始化实体时尝试更改该实体,我们将返回409
+ Retry-After
,其值为5秒,要求客户重试该实体中的相同请求。 5秒(重复此过程,直到实体初始化)。
我的问题是Retry-After
标头是否有效,RFC规范尚不清楚Retry-After
标头是否只能在503
/ {中发送{1}},有关更多详细信息,请参见https://tools.ietf.org/html/rfc7231#section-7.1.3。
我们当然可以只使用3xx
状态码,但是它有点欺骗性,因为它不是我们的服务不可用(而是实体仍在初始化中,因此我们为什么要使用{ {1}}状态码)