jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5858

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat Конфы: @jvmconf ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

Нужно, у меня вся информация в БД на разных языках

Читать полностью…

pro.jvm

Обычно проще на фронте обыграть, но тут тоже смотря какой кейс

Читать полностью…

pro.jvm

Понял, спасибо большое, покручу.

Читать полностью…

pro.jvm

Натыкался, им разве можно заголовки менять? Вроде только тело…

Читать полностью…

pro.jvm

Ну и гуглится много рецептов с ним

Читать полностью…

pro.jvm

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyAdvice.html

Читать полностью…

pro.jvm

Не важно. И так и так уже все работает. Не могу в хедер это прокинуть. Штатно вроде он этот хедер сам не выводит.

Читать полностью…

pro.jvm

А спринг сам выставляет этот хэдер в ответе?

Читать полностью…

pro.jvm

Согласен с моими слова или наоборот? Я запутался))

Читать полностью…

pro.jvm

Немного не понял что по фактам

Читать полностью…

pro.jvm

Примерно, но не совсем так. Пишу либу для интернационализации. Да, надо.

Читать полностью…

pro.jvm

как будто нужно вывести ошибку на другом языке отличном от english. надо ли такое

Читать полностью…

pro.jvm

Всем привет. Подскажите плз, вопрос по жизненному циклу запроса в 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 еще ответ на этот момент реально не получает). В любом случае проверил, модификация респонса в этот момент уже ничего не меняет, заголовок не появляется в ответе клиенту.

Читать полностью…

pro.jvm

тут же в целом надо смотреть картину. насколько слабее. какие кейсы использования в плане мобильности, т.к. тут грим про стационар, а не ноут. и не забываем, что к пекарне надо нормальный монитор

Читать полностью…

pro.jvm

я вижу в этом малый ресурс у системы воздушного охлада.

Читать полностью…

pro.jvm

Крч про kiss не забываем

Читать полностью…

pro.jvm

Но нужно ли выводить локализованное в ответе. Еще раз на этом акцентирую) в любом случае решать вам

Читать полностью…

pro.jvm

Покопай, я решение вижу

Читать полностью…

pro.jvm

Ну и в доке тоже примеры есть

Читать полностью…

pro.jvm

Будто бы то, что тебе нужно

Читать полностью…

pro.jvm

Можно задачу свести к более общей. Как поймать исключение, если оно произошло, например чтобы его залогировать. И не сломать при этом ничего, типа того же ControllerAdvise.

Читать полностью…

pro.jvm

И локаль сервера? Или локаль клиента, которую он указал при запросе?

Читать полностью…

pro.jvm

Просто в хедер всятавить текущую локаль (язык), на котором ответ сформирован. Саму задачу как это все сделать я решил. Не выходит хедер тупо установить

Читать полностью…

pro.jvm

Тебе нужно локализованную ошибку апи возвращать? Или просто хэдер вставить в любой ответ?

Читать полностью…

pro.jvm

Тогда дебажить до победного. Сходу мало кто подскажет имхо

Читать полностью…

pro.jvm

О, я себе нашел новый тэг для телеги - @ContollerAdvice

Читать полностью…

pro.jvm

чувствуются нотки оверинжениринга

Читать полностью…

pro.jvm

плюс то что в пекарне ddr5 надо смотреть какие частоты и в целом сколько будет качать - какая пропускная способность. есть нюансы в общем)

Читать полностью…

pro.jvm

Я напомню, один челик из моего города взял макбук за 700к, там оперативы и стораджа столько же, но м4макс конечно послабее 5090 будет

Читать полностью…

pro.jvm

кто то видит то что хочет видеть))

Читать полностью…
Subscribe to a channel