Миграция декларативного клиента REST в конфигурацию Kuberentes - PullRequest
0 голосов
/ 10 апреля 2020

Мне нужно перенести проект «облачного источника» на развертывание в 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? Влияет ли на меня тот факт, что я должен включить значение имени, как-то отрицательно? Любые предложения приветствуются.

1 Ответ

1 голос
/ 10 апреля 2020

OpenFeign работает без Spring Cloud, но @FeignClient и поддержка аннотаций Spring (@RequestMapping, @GetMapping, et c ...) предоставляются только Spring-cloud-openfeign.

...