我成功地将Spring Cloud Gateway与面向微服务的小应用的Springdoc OpenAPI集成。但是现在,当我打开Swagger UI来测试我的控制器(StudentController)的端点时,我意识到控制器根级别的@RequestMapping并没有被包含在要测试的端点URL中。
路由定义如下:
routes:
- id: students-service
uri: lb://STUDENTS-SERVICE
predicates:
- Path=/students/**
filters:
- RewritePath=/students/(?<path>.*), /$\{path}
- id: openapi
uri: http://localhost:${server.port}
predicates:
- Path=/v3/api-docs/**
filters:
- RewritePath=/v3/api-docs/(?<path>.*), /$\{path}/v3/api-docs
而StudentController如下:
@RestController
@RequestMapping("/api/v1")
@Tag(name = "Students")
public class StudentQueryController {
@GetMapping("/message")
public String dummyGet() {
return "Student Service Dummy GET";
}
}
在 Swagger UI 中,我期望得到的 URL 是 "http://localhost:8060/students/api/v1/message",但我得到了 "http://localhost:8060/api/v1/message"。
请有心人帮我解决这个问题好吗?谢谢。