Skip to content

Commit afe890a

Browse files
author
bnasslahsen
committed
Added Support spring property resolver for annotation. Fixes #347
1 parent a26292f commit afe890a

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/core/OpenAPIBuilder.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,15 @@ private Optional<OpenAPIDefinition> getOpenAPIDefinition() {
194194

195195
private void buildOpenAPIWithOpenAPIDefinition(OpenAPI openAPI, OpenAPIDefinition apiDef) {
196196
// info
197-
AnnotationsUtils.getInfo(apiDef.info()).ifPresent(openAPI::setInfo);
197+
Optional<Info> infos = AnnotationsUtils.getInfo(apiDef.info());
198+
if (infos.isPresent()) {
199+
Info info = infos.get();
200+
if (StringUtils.isNotBlank(info.getTitle())) {
201+
PropertyResolverUtils propertyResolverUtils = context.getBean(PropertyResolverUtils.class);
202+
info.title(propertyResolverUtils.resolve(info.getTitle()));
203+
}
204+
openAPI.setInfo(info);
205+
}
198206
// OpenApiDefinition security requirements
199207
securityParser.getSecurityRequirements(apiDef.security()).ifPresent(openAPI::setSecurity);
200208
// OpenApiDefinition external docs
@@ -203,9 +211,9 @@ private void buildOpenAPIWithOpenAPIDefinition(OpenAPI openAPI, OpenAPIDefinitio
203211
AnnotationsUtils.getTags(apiDef.tags(), false).ifPresent(tags -> openAPI.setTags(new ArrayList<>(tags)));
204212
// OpenApiDefinition servers
205213
Optional<List<Server>> optionalServers = AnnotationsUtils.getServers(apiDef.servers());
206-
if(optionalServers.isPresent()){
214+
if (optionalServers.isPresent()) {
207215
openAPI.setServers(optionalServers.get());
208-
this.isServersPresent=true;
216+
this.isServersPresent = true;
209217
}
210218
// OpenApiDefinition extensions
211219
if (apiDef.extensions().length > 0) {
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package test.org.springdoc.api.app15;
22

3+
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
4+
import io.swagger.v3.oas.annotations.info.Info;
35
import org.springframework.boot.autoconfigure.SpringBootApplication;
46
import org.springframework.test.context.TestPropertySource;
57
import test.org.springdoc.api.AbstractSpringDocTest;
68

7-
@TestPropertySource(properties = "springdoc.operation-descriptions.myOperation=My Desc")
9+
@TestPropertySource(properties = {"springdoc.operation-descriptions.myOperation=My Desc", "springdoc.openapidefinition.info.title=My title"})
810
public class SpringDocApp15Test extends AbstractSpringDocTest {
911

1012
@SpringBootApplication
13+
@OpenAPIDefinition(info = @Info(title = "${springdoc.openapidefinition.info.title}"))
1114
static class SpringDocTestApp { }
1215
}

springdoc-openapi-webmvc-core/src/test/resources/results/app15.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
{
22
"openapi": "3.0.1",
33
"info": {
4-
"title": "OpenAPI definition",
5-
"version": "v0"
4+
"title": "My title"
65
},
76
"servers": [
87
{

0 commit comments

Comments
 (0)