|
93 | 93 | import org.springframework.web.bind.annotation.RequestMethod;
|
94 | 94 | import org.springframework.web.method.HandlerMethod;
|
95 | 95 |
|
| 96 | +import static org.springdoc.core.Constants.OPERATION_ATTRIBUTE; |
96 | 97 | import static org.springdoc.core.converters.SchemaPropertyDeprecatingConverter.isDeprecated;
|
97 | 98 |
|
98 | 99 | /**
|
@@ -515,22 +516,30 @@ protected void calculatePath(HandlerMethod handlerMethod, String operationPath,
|
515 | 516 | * @param routerFunctionVisitor the router function visitor
|
516 | 517 | */
|
517 | 518 | protected void getRouterFunctionPaths(String beanName, AbstractRouterFunctionVisitor routerFunctionVisitor) {
|
518 |
| - List<org.springdoc.core.annotations.RouterOperation> routerOperationList = new ArrayList<>(); |
519 |
| - ApplicationContext applicationContext = openAPIService.getContext(); |
520 |
| - RouterOperations routerOperations = applicationContext.findAnnotationOnBean(beanName, RouterOperations.class); |
521 |
| - if (routerOperations == null) { |
522 |
| - org.springdoc.core.annotations.RouterOperation routerOperation = applicationContext.findAnnotationOnBean(beanName, org.springdoc.core.annotations.RouterOperation.class); |
523 |
| - if (routerOperation != null) |
524 |
| - routerOperationList.add(routerOperation); |
| 519 | + boolean withRouterOperation = routerFunctionVisitor.getRouterFunctionDatas().stream() |
| 520 | + .anyMatch(routerFunctionData -> routerFunctionData.getAttributes().containsKey(OPERATION_ATTRIBUTE)); |
| 521 | + if (withRouterOperation) { |
| 522 | + List<RouterOperation> operationList = routerFunctionVisitor.getRouterFunctionDatas().stream().map(RouterOperation::new).collect(Collectors.toList()); |
| 523 | + calculatePath(operationList); |
525 | 524 | }
|
526 |
| - else |
527 |
| - routerOperationList.addAll(Arrays.asList(routerOperations.value())); |
528 |
| - if (routerOperationList.size() == 1) |
529 |
| - calculatePath(routerOperationList.stream().map(routerOperation -> new RouterOperation(routerOperation, routerFunctionVisitor.getRouterFunctionDatas().get(0))).collect(Collectors.toList())); |
530 | 525 | else {
|
531 |
| - List<RouterOperation> operationList = routerOperationList.stream().map(RouterOperation::new).collect(Collectors.toList()); |
532 |
| - mergeRouters(routerFunctionVisitor.getRouterFunctionDatas(), operationList); |
533 |
| - calculatePath(operationList); |
| 526 | + List<org.springdoc.core.annotations.RouterOperation> routerOperationList = new ArrayList<>(); |
| 527 | + ApplicationContext applicationContext = openAPIService.getContext(); |
| 528 | + RouterOperations routerOperations = applicationContext.findAnnotationOnBean(beanName, RouterOperations.class); |
| 529 | + if (routerOperations == null) { |
| 530 | + org.springdoc.core.annotations.RouterOperation routerOperation = applicationContext.findAnnotationOnBean(beanName, org.springdoc.core.annotations.RouterOperation.class); |
| 531 | + if (routerOperation != null) |
| 532 | + routerOperationList.add(routerOperation); |
| 533 | + } |
| 534 | + else |
| 535 | + routerOperationList.addAll(Arrays.asList(routerOperations.value())); |
| 536 | + if (routerOperationList.size() == 1) |
| 537 | + calculatePath(routerOperationList.stream().map(routerOperation -> new RouterOperation(routerOperation, routerFunctionVisitor.getRouterFunctionDatas().get(0))).collect(Collectors.toList())); |
| 538 | + else { |
| 539 | + List<RouterOperation> operationList = routerOperationList.stream().map(RouterOperation::new).collect(Collectors.toList()); |
| 540 | + mergeRouters(routerFunctionVisitor.getRouterFunctionDatas(), operationList); |
| 541 | + calculatePath(operationList); |
| 542 | + } |
534 | 543 | }
|
535 | 544 | }
|
536 | 545 |
|
|
0 commit comments