К сожалению, пока это невозможно. В документах написано:
Часто ваш код состояния не является статичным, но зависит от различных факторов.
В этом случае вы можете использовать специфичный для библиотеки ответ (ввести с помощью
@Res()
) объект (или, в случае ошибки, выбросить исключение).
Вы также не можете просто установить код ответа в Interceptor
, не отправив его (вместо sendStatus
), потому что, как сказал Камиль в этом потоке :
логика контроллера глобального ответа - последний выполненный шаг
перед отправкой окончательного результата через сеть (это место
где приходят коды состояния по умолчанию).
Так что, если вы (по понятным причинам) не хотите использовать @Res
в каждом контроллере, ExceptionFilter
кажется лучшим вариантом, хотя и не совсем правильно.
Так как другие люди, похоже, имеют точно такую же проблему , запрос функции может быть хорошей идеей. :-)