Skip to content

Commit eef312d

Browse files
committed
Dynamically define ApiGroups does not work. Fixes #2584
1 parent 52df16d commit eef312d

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/conditions/MultipleOpenApiGroupsCondition.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
package org.springdoc.core.conditions;
2525

2626

27+
import java.util.Collection;
28+
2729
import org.springdoc.core.models.GroupedOpenApi;
2830

2931
import org.springframework.boot.autoconfigure.condition.AnyNestedCondition;
@@ -59,4 +61,9 @@ static class OnGroupedOpenApiBean {}
5961
@ConditionalOnProperty(name = GROUP_CONFIG_FIRST_PROPERTY)
6062
static class OnGroupConfigProperty {}
6163

64+
/**
65+
* The type On list grouped open api bean.
66+
*/
67+
@ConditionalOnBean(value = GroupedOpenApi.class, parameterizedContainer = Collection.class)
68+
static class OnListGroupedOpenApiBean {}
6269
}

springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v30/app177/AnnotatedController.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
import java.lang.annotation.Retention;
2828
import java.lang.annotation.RetentionPolicy;
29+
import java.util.Arrays;
30+
import java.util.List;
2931

3032
import org.springdoc.core.filters.OpenApiMethodFilter;
3133
import org.springdoc.core.models.GroupedOpenApi;
@@ -65,27 +67,23 @@ public String notAnnotatedPost() {
6567
}
6668

6769
@Bean
68-
public GroupedOpenApi group1OpenApi() {
69-
return GroupedOpenApi.builder()
70+
public List<GroupedOpenApi> apis() {
71+
GroupedOpenApi group1OpenApi = GroupedOpenApi.builder()
7072
.group("annotatedGroup1")
7173
.addOpenApiMethodFilter(method -> method.isAnnotationPresent(Group1.class))
7274
.build();
73-
}
7475

75-
@Bean
76-
public GroupedOpenApi group2OpenApi() {
77-
return GroupedOpenApi.builder()
76+
GroupedOpenApi group2OpenApi = GroupedOpenApi.builder()
7877
.group("annotatedGroup2")
7978
.addOpenApiMethodFilter(method -> method.isAnnotationPresent(Group2.class))
8079
.build();
81-
}
8280

83-
@Bean
84-
public GroupedOpenApi group3OpenApi() {
85-
return GroupedOpenApi.builder()
81+
GroupedOpenApi group3OpenApi = GroupedOpenApi.builder()
8682
.group("annotatedCombinedGroup")
8783
.addOpenApiMethodFilter(method -> method.isAnnotationPresent(Group1.class) || method.isAnnotationPresent(Group2.class))
8884
.build();
85+
86+
return Arrays.asList(group1OpenApi, group2OpenApi, group3OpenApi);
8987
}
9088

9189
@Bean

0 commit comments

Comments
 (0)