对于 200 到 299 之间的 HTTP 状态,Response::isOk() return 不应该为真吗?

Shouldn't Response::isOk() return true for an HTTP status between 200 and 299?

我正在使用 Symfony 构建 REST API。我处于一种情况,我想在 kernel.terminate 事件中执行一些操作,但我想确保在执行此操作之前已成功处理请求。

为此,因为我使用 REST 约定并且在发生错误时应该 return 适当的 HTTP 状态代码,所以我想检查响应 HTTP 状态。如果 HTTP 状态在 200 和 299 之间,方法 Symfony\Component\HttpFoundation\Response::isOk() 似乎更合适并且比手动检查更可读,但它 returns true 只有当 HTTP 状态等于 200 时。因为我 return 创建资源时的 201 状态代码,我不能为此使用它。

在 Github 上打开一个问题之前,我想知道是否有这种方法不能 return true 其他成功 HTTP 状态的原因?

谢谢!

您可以使用 Response 对象的 isSuccessful() 方法:

/**
 * Is response successful?
 *
 * @return bool
 *
 * @final since version 3.2
 */
public function isSuccessful()
{
    return $this->statusCode >= 200 && $this->statusCode < 300;
}