внутреннее выполнение нескольких вызовов REST из Java

0

Я должен получить список пользователей, использующих наш продукт. Текущий дизайн моей компании db работает следующим образом:

  1. запрос db для получения групп пользователей, которые используют определенный продукт
  2. получить идентификатор группы оттуда
  3. запрос на идентификатор группы, чтобы получить список пользователей

У меня есть REST api для обоих, уже давно написанных некоторыми другими людьми команды. Я думал о том, чтобы сделать несколько вызовов REST из внешнего интерфейса (угловатым), но мне сказали, что это будет трудоемким и неэффективным.

Я слышал, что я могу сделать другие вызовы REST из самой Java и просто вернуть конечный результат - список пользователей. Является ли это решение жизнеспособным? (Я также читал статьи здесь о переполнении стека, что это не очень хорошая идея: вызывать веб-службы внутри сервера), но мне нужно было бы повод поспорить (по крайней мере) и выбрать лучший из двух подходов.

Примечание. Я не должен писать новые запросы и/или изменять существующее однократно. (что является большой проблемой.. но я не могу помочь)

  • 0
    Является ли REST API внешним по отношению к приложению? Если так, то вполне нормально вызывать внешнюю службу. Если REST API охватывает классы в приложении, то почему бы не обратиться к внутреннему API напрямую? Вам не нужно маршалировать данные через HTTP, когда вы можете получить доступ в том же приложении JVM. Что касается запроса, было бы более эффективно выполнить один агрегированный запрос (с GROUP BY), чем пытаться объединить данные с несколькими запросами.
Теги:
rest

1 ответ

1
Лучший ответ

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

Просто подумайте: если вы сделаете запрос REST, вам нужно создать/открыть сокет, оберните запрос в текст (xml/json), проанализируйте его с другой стороны, создайте ответ, оберните его в текст и снова проанализируйте. Библиотечный вызов в java намного эффективнее, поскольку накладные расходы практически отсутствуют.

Я бы рекомендовал расширить REST API, чтобы иметь возможность извлекать информацию со стороны клиента (используя javascript) с помощью одного вызова.

  • 0
    Ну, REST тоже подходит для бэкэнда / бэкэнда :) Кроме того, я полностью с вами связан.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню