gateway -- pom.xml
java
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-gateway-spring-boot-starter</artifactId>
<version>4.2.0</version>
</dependency>
</dependencies>
gateway -- application.xml
java
server:
port: 7777
servlet:
context-path: /
spring:
application:
name: gateway-server
cloud:
gateway:
discovery:
locator:
enabled: true #开启Eureka服务发现
lower-case-service-id: true
routes:
- id: order-product
uri: lb://order-product
predicates:
- Path=/order/**
- id: user-consumer
uri: lb://user-consumer
predicates:
- Path=/user/**
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:7001/eureka/
knife4j:
# 聚合swagger文档
gateway:
enabled: true
# 排序规则(tag/operation排序自4.2.0版本新增)
# 取值:alpha-默认排序规则,官方swagger-ui默认实现,order-Knife4j提供的增强排序规则,开发者可扩展x-order,根据数值来自定义排序
tags-sorter: order
operations-sorter: order
# 指定手动配置的模式(默认为该模式)
strategy: manual
routes:
- name: 用户服务
# 真实子服务访问url地址-提供OpenAPI的文档
url: /user/v2/api-docs?group=consumer_Group_1
service-name: USER-CONSUMER
# 路由前缀
# 兼容OpenAPI3规范在聚合时丢失contextPath属性的异常情况,由开发者自己配置contextPath,Knife4j的前端Ui做兼容处理,与url属性独立不冲突,仅OpenAPI3规范聚合需要,OpenAPI2规范不需要设置此属性,默认为(apiPathPrefix)
context-path: /user
order: 1
- name: 订单服务
url: /order/v2/api-docs?group=provider_Group_1
service-name: ORDER-PRODUCT
# 路由前缀
context-path: /order
order: 2