Skip to content

Commit 0e63c59

Browse files
committed
Fix for issue 745
Issue in converting server url in RFC 3986 format from OpenAPI Spec 2 to Open API Spec 3
1 parent b5a7350 commit 0e63c59

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

modules/swagger-parser-v2-converter/src/main/java/io/swagger/v3/parser/converter/SwaggerConverter.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -404,13 +404,11 @@ private List<Server> convert(List<Scheme> schemes, String host, String basePath)
404404
}
405405
} else {
406406
if (!"/".equals(baseUrl)) {
407-
Server server = new Server();
408-
server.setUrl(baseUrl);
409-
410-
servers.add(server);
411-
} else {
412-
return null;
407+
baseUrl = "//" + baseUrl;
413408
}
409+
Server server = new Server();
410+
server.setUrl(baseUrl);
411+
servers.add(server);
414412
}
415413

416414
return servers;

modules/swagger-parser-v2-converter/src/test/java/io/swagger/parser/test/V2ConverterTest.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ public class V2ConverterTest {
7777
private static final String ISSUE_673_YAML = "issue-673.yaml";
7878
private static final String ISSUE_676_JSON = "issue-676.json";
7979
private static final String ISSUE_708_YAML = "issue-708.yaml";
80+
private static final String ISSUE_745_YAML = "issue-745.yaml";
8081

8182
private static final String API_BATCH_PATH = "/api/batch/";
8283
private static final String PETS_PATH = "/pets";
@@ -431,7 +432,7 @@ public void testIssue30() throws Exception {
431432
@Test(description = "No Servers - without host, basePath, scheme")
432433
public void testIssue31() throws Exception {
433434
OpenAPI oas = getConvertedOpenAPIFromJsonFile(ISSUE_31_JSON);
434-
assertNull(oas.getServers());
435+
assertNotNull(oas.getServers());
435436
}
436437

437438
@Test(description = "Convert schema, property and array examples")
@@ -616,6 +617,12 @@ public void testIssue708() throws Exception {
616617
assertEquals(schema.getPattern(), "^[0-9]+$");
617618
}
618619

620+
@Test(description = "Issue in converting server url in RFC 3986 format from OpenAPI Spec 2 to Open API Spec 3")
621+
public void testIssue745() throws Exception {
622+
OpenAPI oas = getConvertedOpenAPIFromJsonFile(ISSUE_745_YAML);
623+
assertTrue(oas.getServers().get(0).getUrl().startsWith("//"));
624+
}
625+
619626
@Test(description = "OpenAPI v2 converter - Missing Parameter.style property")
620627
public void testParameterConversion() throws Exception {
621628
OpenAPI oas = getConvertedOpenAPIFromJsonFile(PARAMETER_CONVERSION_JSON);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
swagger: '2.0'
2+
info:
3+
description: 'Test'
4+
version: 1.0.0
5+
title: OpenAPI Test
6+
license:
7+
name: Apache-2.0
8+
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
9+
host: petstore.swagger.io
10+
basePath: /v2

0 commit comments

Comments
 (0)