Используйте openapi-генератор для создания многопользовательского клиента SpringJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Используйте openapi-генератор для создания многопользовательского клиента Spring

Сообщение Anonymous »

Генератор Openapi — отличный инструмент для поддержки сервисов с использованием REST API.
Однако у меня возникла следующая проблема.
Я работаю в мультиарендной среде, где разрабатываю сервис A , который вызывает службу B, но служба B на самом деле может быть B1, B2, >B3. Все службы B используют один и тот же контракт API, но предоставляют разные данные. Какой сервис выбран, зависит от текущего потока, следующего за сервисом A, например. какой пользователь вошел в систему A.
Пример:
  • пользователь1 входит в систему и выполняет операцию над сервисом A -> вызывается сервис B1.
  • пользователь2 входит в систему -> сервис B2
  • пользователь7 -> B3
    ...
    Когда я генерирую клиент с помощью openapi-generator, я могу создать Spring bean-компонент, например:

Код: Выделить всё

@Bean
ServiceBApi serviceBApi(RestTemaplte restTemaplte){
ApiClient apiClient = new ApiClient(restTemplate);
apiClient.setBasePath(baseUrl);   // base path changes on each request
return new ServiceBApi(apiClient);
}
Проблема в том, что basePath изменяется при каждом запросе, поэтому его нельзя установить при создании компонента, или для каждого запроса необходимо создавать новый экземпляр ServiceBApi.
p>
Знаете ли вы какую-либо функцию генератора openapi для повторного использования bean-компонента ServiceBApi и передачи basePath при вызове API?
Или может ли какая-нибудь функция Spring делать это, чтобы избежать создания объекта при каждом вызове?
Я это знаю одним из вариантов может быть определение собственного шаблона для создания класса ServiceBApi, но я бы хотел этого избежать.


Подробнее здесь: https://stackoverflow.com/questions/792 ... ant-client
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»