Не важно. И так и так уже все работает. Не могу в хедер это прокинуть. Штатно вроде он этот хедер сам не выводит.
Читать полностью…Всем привет. Подскажите плз, вопрос по жизненному циклу запроса в Spring Web. Задача вроде достаточно банальная - подставить http-header во ВСЕ ответы сервиса. Расковырял все уже что только можно, но решения найти никак не могу.
1. Приходит запрос от клиента.
2. Срабатывают (при наличии) OncePerRequestFilter
3. Срабатывают (при начилии) HandlerInterceptor, метод preHandle
4. Далее запускается релевантный запросу метод контроллера, и который либо отрабатывает успешно, либо выкидывает исключение.
5. Если на прошлом шаге приложение выкинуло ошибку, срабатывает какой-то релевантный данному типу ошибки метод в @ControllerAdvise. Его метод @ExceptionHandler на вход принимает исключение, обрабатывает его и возвращает новый объект Response, таким образом цепочку из нескольких @ExceptionHandler для поэтапной обработки ошибки выстроить не выйдет, так как может сработать только один @ExceptionHandler.
6. Вот тут независимо от наличия или отсутствия ошибки мне надо обработать ответ, перед отправкой его клиенту, добавить заголовок Content-Language. При этом желательно быть уверенным, что ни один компонент системы уже не может пересоздать этот response и заменить его другим объектом.
⁃ Ограниченно можно использовать HandlerInterceptor, метод postHandle. Но он не срабатывает, если вызывается исключение. Поэтому этот вариант или не подходит, или дополнительно к нему надо также ловить каким-то образом результат работы @ControllerAdvise.
⁃ Пробовал создать HandlerExceptionResolver дополнительно к HandlerInterceptor.postHandle(), но если он срабатывает, то уже не отрабатывают вообще @ControllerAdvise, а моя постобработка ответа не должна ломать штатные механизмы
⁃ HandlerInterceptor.afterCompletion() срабатывает в обоих кейсах, но устанавливать заголовок ответа тут поздно, так как это событие происходит уже позже отправки ответа пользователю, как где-то читал (хотя мне это нифига непонятно, потому что если поставить точку останова в этом методе, Postman еще ответ на этот момент реально не получает). В любом случае проверил, модификация респонса в этот момент уже ничего не меняет, заголовок не появляется в ответе клиенту.
тут же в целом надо смотреть картину. насколько слабее. какие кейсы использования в плане мобильности, т.к. тут грим про стационар, а не ноут. и не забываем, что к пекарне надо нормальный монитор
Читать полностью…Но нужно ли выводить локализованное в ответе. Еще раз на этом акцентирую) в любом случае решать вам
Читать полностью…Можно задачу свести к более общей. Как поймать исключение, если оно произошло, например чтобы его залогировать. И не сломать при этом ничего, типа того же ControllerAdvise.
Читать полностью…Просто в хедер всятавить текущую локаль (язык), на котором ответ сформирован. Саму задачу как это все сделать я решил. Не выходит хедер тупо установить
Читать полностью…Тебе нужно локализованную ошибку апи возвращать? Или просто хэдер вставить в любой ответ?
Читать полностью…плюс то что в пекарне ddr5 надо смотреть какие частоты и в целом сколько будет качать - какая пропускная способность. есть нюансы в общем)
Читать полностью…Я напомню, один челик из моего города взял макбук за 700к, там оперативы и стораджа столько же, но м4макс конечно послабее 5090 будет
Читать полностью…