Я могу читать все файлы application.yml из репозитория конфигурации, полученного сервером конфигурации.
Я определил swagger в шлюзе API, за исключением его определения в других службах.
Я могу получить доступ к Swagger через http://localhost:8082/swagger-ui/index.html для службы бронирования.
Я не могу получить доступ к Swagger через http://localhost:8082/swagger-ui/index.html для шлюза API. Это показывает, что мне не удалось загрузить определение API.
Вот файл booking-service.yml
Код: Выделить всё
server:
port: 8082
forward-headers-strategy: framework
spring:
application:
name: booking-service
datasource:
driver-class-name: org.postgresql.Driver
url: ${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5434/bookings}
username: ${SPRING_DATASOURCE_USERNAME:admin}
password: ${SPRING_DATASOURCE_PASSWORD:password}
jpa:
open-in-view: false
hibernate:
ddl-auto: validate
flyway:
enabled: true
cache:
type: redis
data:
redis:
host: ${REDIS_HOST:localhost}
port: ${REDIS_PORT:6379}
repositories:
enabled: false
kafka:
bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
example:
kafka:
enabled: true
topics:
booking-events: booking.events
booking-events-dlt: booking.events.dlt
# SWAGGER
springdoc:
api-docs:
enabled: true
show-actuator: true
override-with-generic-response: false
eureka:
client:
service-url:
defaultZone: ${EUREKA_DEFAULTZONE:http://localhost:8761/eureka/}
resilience4j:
circuitbreaker:
instances:
professionals:
slidingWindowSize: 20
minimumNumberOfCalls: 10
failureRateThreshold: 50
Код: Выделить всё
server:
port: 8080
forward-headers-strategy: framework
spring:
application:
name: api-gateway
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: professionals-native
uri: lb://professionals-service
predicates:
- Path=/api/v1/**
- id: professionals
uri: lb://professionals-service
predicates:
- Path=/api/professionals/**
filters:
# /api/professionals/** -> /api/** on professionals-service
- StripPrefix=2
- PrefixPath=/api
- id: booking
uri: lb://booking-service
predicates:
- Path=/api/bookings/**,/api/availability/**
# OpenAPI aggregation routes
- id: professionals-openapi
uri: lb://professionals-service
predicates:
- Path=/professionals/v3/api-docs,/professionals/v3/api-docs/**
filters:
# /professionals/v3/api-docs -> /v3/api-docs
- StripPrefix=1
- id: booking-openapi
uri: lb://booking-service
predicates:
- Path=/booking/v3/api-docs,/booking/v3/api-docs/**
filters:
# /booking/v3/api-docs -> /v3/api-docs
- StripPrefix=1
springdoc:
api-docs:
enabled: true
swagger-ui:
disable-swagger-default-url: true
urls:
- name: professionals-service
url: /professionals/v3/api-docs
- name: booking-service
url: /booking/v3/api-docs
eureka:
client:
service-url:
defaultZone: ${EUREKA_DEFAULTZONE:http://localhost:8761/eureka/}
management:
endpoint:
gateway:
enabled: true
endpoints:
web:
exposure:
include: health,info,gateway,env
Эта проблема показана ниже.
Код: Выделить всё
Failed to load API definition.
Fetch error
Not Found /booking/v3/api-docs
Подробнее здесь: https://stackoverflow.com/questions/798 ... definition
Мобильная версия