Однако у меня возникла следующая проблема.
Я работаю в мультиарендной среде, где разрабатываю сервис 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);
}
p>
Знаете ли вы какую-либо функцию генератора openapi для повторного использования bean-компонента ServiceBApi и передачи basePath при вызове API?
Или может ли какая-нибудь функция Spring делать это, чтобы избежать создания объекта при каждом вызове?
Я это знаю одним из вариантов может быть определение собственного шаблона для создания класса ServiceBApi, но я бы хотел этого избежать.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ant-client