Мне нужно перенести проект «облачного источника» на развертывание в Kubernetes. Это означало бы удаление зависимостей для шлюза, сервера конфигурации, сервера обнаружения и так далее. Тем не менее, я хотел бы сохранить одну часть - декларативный REST-клиент, предоставляемый Spring-Cloud Open Feign, чтобы я не писал клиентскую реализацию для межсервисного взаимодействия.
Решение, которое я придумал выглядит примерно так:
@FeignClient(name = "useless", url = "http://${product.service.url:localhost:3333}")
public interface ProductApiFeign extends ProductApi {}
product.service.url
- это имя и порт службы Kubernetes, тогда как name
- это просто произвольное строковое значение, потому что проверка не позволила бы мне запустить программу в противном случае. ProductApi
- это сгенерированный Swagger интерфейс с его указанными c аннотациями.
Я развернул это, и он работает, как и ожидалось.
Вопрос заключается в следующем: есть ли лучший способ реализации декларативного REST-клиент, основанный на аннотированном интерфейсе, без необходимости включения зависимости Spring-Cloud? Влияет ли на меня тот факт, что я должен включить значение имени, как-то отрицательно? Любые предложения приветствуются.