Разве Response :: isOk () не должен возвращать true для состояния HTTP между 200 и 299? - PullRequest
0 голосов
/ 28 сентября 2018

Я использую Symfony для создания REST API.Я нахожусь в ситуации, когда я хочу выполнить некоторые действия в событии kernel.terminate, но я хочу убедиться, что запрос был успешно обработан, прежде чем делать это.

Для этого, так как я использую соглашения RESTи должен возвращать соответствующий код состояния HTTP при возникновении ошибки, я хочу проверить статус HTTP ответа.Метод Symfony\Component\HttpFoundation\Response::isOk() кажется более подходящим и более читабельным, чем проверка вручную, если статус HTTP находится между 200 и 299, но он возвращает true, только если статус HTTP равен 200. Поскольку я возвращаю код состояния 201 при создании ресурса,Я не могу использовать его для этого.

Перед открытием проблемы на Github мне было интересно, есть ли причина, по которой этот метод не возвращает true для других успешных HTTP-статусов?

Спасибо!

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете использовать метод isSuccessful() из объекта Response:

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