Skip to content

Commit 7d129dc

Browse files
committed
Cannot override servers in api-docs.yaml using OpenApiCustomiser. Fixes #1188.
1 parent 9b2a8a6 commit 7d129dc

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
import io.swagger.v3.oas.models.media.StringSchema;
6767
import io.swagger.v3.oas.models.parameters.Parameter;
6868
import io.swagger.v3.oas.models.responses.ApiResponses;
69+
import io.swagger.v3.oas.models.servers.Server;
6970
import org.apache.commons.lang3.ArrayUtils;
7071
import org.apache.commons.lang3.StringUtils;
7172
import org.slf4j.Logger;
@@ -295,7 +296,10 @@ protected synchronized OpenAPI getOpenApi() {
295296
this.removeBrokenReferenceDefinitions(openApi);
296297

297298
// run the optional customisers
299+
List<Server> servers = openApi.getServers();
298300
openApiCustomisers.ifPresent(apiCustomisers -> apiCustomisers.forEach(openApiCustomiser -> openApiCustomiser.customise(openApi)));
301+
if(!servers.equals(openApi.getServers()))
302+
openAPIService.setServersPresent(true);
299303

300304
openAPIService.setCachedOpenAPI(openApi);
301305
openAPIService.resetCalculatedOpenAPI();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package test.org.springdoc.api.app162;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import io.swagger.v3.oas.models.servers.Server;
7+
import org.springdoc.core.customizers.OpenApiCustomiser;
8+
9+
import org.springframework.context.annotation.Bean;
10+
import org.springframework.context.annotation.Configuration;
11+
12+
@Configuration
13+
public class OpenApiConfig {
14+
@Bean
15+
OpenApiCustomiser openApiCustomiser() {
16+
return openApi -> {
17+
openApi.getInfo().version("v1");
18+
Server server = new Server().url("");
19+
List<Server> servers=new ArrayList<>();
20+
servers.add(server);
21+
openApi.servers(servers);
22+
};
23+
}
24+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package test.org.springdoc.api.app162;
2+
3+
import org.junit.jupiter.api.Test;
4+
import test.org.springdoc.api.AbstractSpringDocTest;
5+
6+
import org.springframework.boot.autoconfigure.SpringBootApplication;
7+
8+
public class SpringDocApp162Test extends AbstractSpringDocTest {
9+
10+
@SpringBootApplication
11+
static class SpringDocTestApp {}
12+
13+
@Test
14+
public void testApp2() throws Exception {
15+
super.testApp();
16+
}
17+
18+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"openapi": "3.0.1",
3+
"info": {
4+
"title": "OpenAPI definition",
5+
"version": "v1"
6+
},
7+
"servers": [
8+
{
9+
"url": ""
10+
}
11+
],
12+
"paths": {},
13+
"components": {}
14+
}

0 commit comments

Comments
 (0)