Spring Cloud Greenwich переводит spring-cloud-netflix-zuul
в режим обслуживания, поэтому я пытаюсь перейти с Zuul на Spring Cloud Gateway.
С Zuul у меня есть маршрут как
zuul:
routes:
masterplan_match:
path: /**/masterplans/**
serviceId: api-masterplan
То, что я делаю там, в основном игнорирует все, что идет до или после masterplan
в полученном пути, и перенаправляет на api-masterplan
. Например, и /some/path/to/masterplans
, и /masterplans
обращаются к одному и тому же API (причина в том, что masterplans
является подресурсом более крупной сущности, которая отвечает за создание нового masterplans
, но тогда masterplans
можно рассматривать как полноценные ресурсы для таких целей, как GET
ting details, обновление, удаление).
Можно ли сопоставить эту конфигурацию с Spring Cloud Gateway? Если посмотреть на предикаты , то, возможно, это будет предикат пути , но тогда все выглядит так, как будто все сопоставители работают с отдельными элементами пути (кроме WildcardTheRestPathElement
, который, однако, может использоваться только как последний элемент - я думаю), то есть: мне нужно было бы написать что-то вроде
spring
cloud:
gateway:
routes:
- id: masterplan_match
uri: lb://api-masterplan # Coming from discovery client
predicates:
- Path=/some/path/to/masterplans/**, /masterplans/**
Я что-то упускаю и можно ли объединить два пути в один?