Zuul и переадресация URL-пути на другой URL-путь - PullRequest
0 голосов
/ 17 января 2019

Я использовал spring zuul для управления API_Gateway. Но у меня есть основная проблема, которая не может пересылать запросы по определенному пути. в моих службах существует несколько адресов, которые нельзя изменить, и я переадресую с определенного адреса. Я предпочитаю не использовать «Zuulfilter», но использовать это не полезно.

запрос пользователя: (все нормально)

Запрос браузера: gateway.com/api1/user → gateway → apihost.com/api1/user

запрос чванства: (это не удалось)

Запрос браузера: gateway.com/api1/swagger → gateway → apihost.com/swagger-ui.html

Я использую service_discovery (eureka) и My application.yml Конфигурация файла:

Zuul:
 routes:
   swagger:
     path: /api1/swagger
     service_id: api1
     url: forward:/swagger-ui.html#/
   users:
     path: /api1/user/**
     service_id: api1
     stripPrefix: false

Но я вижу в режиме отладки:

2019-01-17 11:28:46.437 DEBUG 77407 --- [nio-8181-exec-4] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Did not find handler method for [/swagger-ui.html#/api1/swagger]
2019-01-17 11:28:46.437 DEBUG 77407 --- [nio-8181-exec-4] a.e.w.s.ControllerEndpointHandlerMapping : Looking up handler method for path /swagger-ui.html#/api1/swagger
2019-01-17 11:28:46.437 DEBUG 77407 --- [nio-8181-exec-4] a.e.w.s.ControllerEndpointHandlerMapping : Did not find handler method for [/swagger-ui.html#/api1/swagger]

Я также добавил фильтр маршрутов (Zuulfilter) для прямого адреса вызова из службы, но ответ отличается. Что в любом случае использовать, чтобы использовать конфигурацию Zuul для проделанной пересылки (что касается использования службы обнаружения), если нет существующего примера кода для фильтра сервлетов разработки?

1 Ответ

0 голосов
/ 17 января 2019

Мой друг Эврика - для обнаружения сервисов, а Zuul - для доступа к API. В клиенте Zuul добавьте конфигурацию, как показано ниже в application.yaml.

Попробуйте так: -

server:
  port: 9999


eureka:         #tells about the Eureka server details and its refresh time
  instance:
    leaseRenewalIntervalInSeconds: 1
    leaseExpirationDurationInSeconds: 2
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:8761/eureka/

spring:
  application:
    name: zuul-server


    zuul:
      #Service will be mapped under the /api URI

      routes:    
       service1:
          service-id: id4
          path: /trade/**     
          url: http://localhost:8091
          strip-prefix: false

        service2:

          service-id: id5
          path:  /**
          url: http://localhost:8096
          strip-prefix: false
...