Как обращаться с классами, которым нужны веб-ресурсы? - PullRequest
0 голосов
/ 06 июля 2018

Я делаю проект на Java, где у меня есть класс, который при инициализации подключается к API для получения некоторой информации. На основании этой информации он затем предоставляет несколько методов для использования и анализа.

Но что, если веб-запрос завершится неудачно? Или если у меня есть другая проблема. Каждый метод теперь потерпит неудачу, потому что у него нет необходимой информации

Я использовал логическое имя loadInfo, а также открытый метод didLoadInfo, чтобы клиент знал состояние объекта. Я также добавляю метод reloadInfo, чтобы попытаться перезагрузить всю информацию, и каждый метод выдает исключение, если они вызываются, когда переменная loadInfo имеет значение false. Это исключение является проверенным исключением.

Есть ли другой лучший способ справиться с этой ситуацией? Исключение, сгенерированное всеми методами, должно быть проверено или не проверено?

EDIT:

Является ли хорошей идеей поддерживать значения по умолчанию, но как бы вы сообщили клиенту, что возвращаемая информация может быть устаревшей? Может быть, другое логическое значение, указывающее информационное состояние?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Поскольку вы вызываете другие службы для получения информации, используйте Netflix Hysytix, чтобы корректно обработать сбой с помощью резервного метода. Очевидно, у вас есть гораздо больше возможностей для резервной логики.

Посетите официальную библиотеку Hystrix здесь .

Если у вас есть время, посмотрите мою статью о LinkedIn .

0 голосов
/ 06 июля 2018

Я думаю, что в подобных сценариях вы должны использовать REST, чтобы ваши java-компоненты работали на веб-сервере независимо друг от друга. Если ваш пользовательский интерфейс запущен и работает (он может быть угловым или реагировать на js или html) и иметь вызовы REST для вызова java REST API, вы также можете настроить другой API в том же веб-проекте независимо от классов REST и инициализировать как вскоре в веб-контексте загружается (например, если вы используете Spring, как только загружается контекст приложения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...