Как обнаружить запрос REST API с мобильного телефона или с ПК весной 6

В Spring 5 я использовал org.springframework.mobile jar и Device класс, чтобы определить, исходит ли запрос REST с мобильного устройства или нет.

код:

if (device.isMobile() || device.isTablet()) {
                return true;
            }

Но весной 6 org.springframework.mobile баночку убирают.

Есть ли другой способ проверить, поступил ли запрос REST с мобильного телефона или нет.

Это никогда не было частью Spring, а было частью Spring Mobile, от которого отказались много лет назад. Как уже ответил здесь.

M. Deinum 22.02.2024 09:16

любой альтернативный способ проверки...

Nidhi257 22.02.2024 09:55

Вы можете скопировать код из Spring Mobile (перехватчик или фильтр), который добавляет эту информацию, и адаптировать его к изменениям. Кроме того, поскольку от него давно отказались, он, вероятно, даже не поддерживает уже все устройства, особенно новые.

M. Deinum 24.02.2024 11:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
174
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

От всей библиотеки Spring Mobile отказались, поскольку не существует надежного способа определить, кто (какое устройство) является отправителем HTTP-запроса. Клиент может указать в шапке некоторую информацию, например User-Agent, но это не обязательно.

Лучший вариант для вас как владельца REST API — определить дополнительный параметр в API и позволить вашим клиентам настроить его правильно. Например deviceType=mobile.

Если это невозможно, вы можете попробовать проверить вышеупомянутый ключ User-Agent заголовка, используя HttpServletRequest.getHeader().

Другие вопросы по теме