使用springcloud gateway集成swagger,访问http://localhost:网关接口/swagger-ui.html
出现:
原因是网关的路由断言没有路径剥离,我只是想访问的路径少一个服务名而已:
但此时服务swagger json文件的调用路径是http://localhost:8000/v2/api-docs
,如果不剥离路径,网关路由后将访问http://localhost:8000/product/v2/api-docs
。
贴一个网关代码:
SwaggerHandler:
@RestController
@RequestMapping("/swagger-resources")
public class SwaggerHandler {
@Autowired(required = false)
private SecurityConfiguration securityConfiguration;
@Autowired(required = false)
private UiConfiguration uiConfiguration;
private final SwaggerResourcesProvider swaggerResources;
@Autowired
public SwaggerHandler(SwaggerResourcesProvider swaggerResources) {
this.swaggerResources = swaggerResources;
}
@GetMapping("/configuration/security")
public Mono<ResponseEntity<SecurityConfiguration>> securityConfiguration() {
return Mono.just(new ResponseEntity<>(
Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()