Как распределить маршруты по нескольким файлам YML в Spring Cloud Gateway? - PullRequest
1 голос
/ 26 марта 2020

В настоящее время я реализую Spring Cloud и хотел бы указать мои маршруты в нескольких файлах, как показано ниже:

Первоначально у нас была одна конфигурация, имеющая маршруты к остальным конечным точкам A & B.

Spring Cloud Gateway fronts Rest Endpoint A and Rest Endpoint B 
    - Created YML 1 with routes to A and B (Refer below)

YML 1
----------------
spring:
  cloud:
    gateway:
      routes:
        - id: RouteA
          uri: https://httpbin.org/
          predicates:
            - Path=/status/200
        - id: RouteB
          uri: https://httpbin.org/
          predicates:
            - Path=/status/400

Через несколько дней мне нужно добавить маршруты в другую конечную точку отдыха C. Я не хотел бы касаться исходной конфигурации (YML 1) вместо этого хотел бы создать новый YML для C и ожидать, что маршрут C добавится к исходной маршрутизации A и B (аналогично Apache Httpd WebProxy).

Чтобы иметь несколько YML, я обращаюсь к предложениям по ссылке ниже: Spring Boot и несколько внешних файлов конфигурации

Spring Cloud Gateway fronts Rest Endpoint A, B and C
    - Existing YML 1 with routes to A and B (Refer below)
    - Created YML 2 with route to C (Refer below)
YML 1
----------------
spring:
  cloud:
    gateway:
      routes:
        - id: RouteA
          uri: https://httpbin.org/
          predicates:
            - Path=/status/200
        - id: RouteB
          uri: https://httpbin.org/
          predicates:
            - Path=/status/400

YML 2
-----------------
spring:
  cloud:
    gateway:
      routes:
        - id: RouteC
          uri: https://httpbin.org/
          predicates:
            - Path=/status/500
Expectation 
-----------------------
spring:
  cloud:
    gateway:
      routes:
        - id: RouteA
          uri: https://httpbin.org/
          predicates:
            - Path=/status/200
        - id: RouteB
          uri: https://httpbin.org/
          predicates:
            - Path=/status/400
        - id: RouteC
          uri: https://httpbin.org/
          predicates:
            - Path=/status/500
Actual Outcome 
-------------------------           
spring:
  cloud:
    gateway:
      routes:
        - id: RouteC
          uri: https://httpbin.org/
          predicates:
            - Path=/status/500

Routes(A, B, C) do not get appended, instead it only picks up the latest configuration (YML 2 - Route C) in the property chain                      

Если у кого-то есть какие-либо блестящие идеи о том, как реализовать это, пожалуйста, предложите. Любая помощь и комментарии приветствуются.

...