我正在尝试将openapi3与反应性集成。但是我总是从其他路由配置.andOther(route(RequestPredicates.all(), errorHandler::invalidVersion))
获得错误消息“无效版本”。如果我删除了这个验证工具,那么验证就可以了,但是版本验证是failing.below,这是我的自定义路由器。
route()
.add((RouterFunction<ServerResponse>) routerFunctionMappings
.stream()
.map(routemapping -> Tuples.of(routemapping.getVersion(),
routeForVersion(routemapping.getRouteMapping())))
.reduce(Tuples.of("test", route()), (tupel2RouteFunction1, tupel2RouteFunction2) ->
Tuples.of("test", tupel2RouteFunction1
.getT2()
.path(
tupel2RouteFunction2.getT1(),
() -> (RouterFunction<ServerResponse>) tupel2RouteFunction2
.getT2()
.build()
.andOther(
route(RequestPredicates.all(), handler::validate)))))
.getT2()
.build()
.andOther(route(RequestPredicates.all(), errorHandler::invalidVersion)))
.build()
.filter(filterFunction());
请帮助我解决这个问题,使验证和招摇过市工作。
发布于 2022-06-23 11:29:46
我找到了解决办法。当我将该行.andOther(route(RequestPredicates.all(), errorHandler::invalidVersion))
更新为.andOther(route(RequestPredicates .pathPredicates(PathPatternParser.defaultInstance) .apply("/swagger-doc/**").negate(), errorHandler::versionNotSupported))
时,这一问题得到了解决。
https://stackoverflow.com/questions/72621263
复制相似问题