Skip to content

Commit 930e850

Browse files
authored
Merge pull request #546 from florianstoll/openapi31-merged
OpenAPI 3.1.x support
2 parents a3d51cf + c759443 commit 930e850

File tree

4 files changed

+405
-4
lines changed

4 files changed

+405
-4
lines changed

modules/apim-adapter/src/main/java/com/axway/apim/api/specification/APISpecification.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public enum APISpecType {
2727
SWAGGER_API_1X_YAML("Swagger 1.x (YAML)", YAML),
2828
SWAGGER_API_20("Swagger 2.0", JSON),
2929
SWAGGER_API_20_YAML("Swagger 2.0 (YAML)", YAML),
30-
OPEN_API_30("Open API 3.0", JSON),
31-
OPEN_API_30_YAML("Open API 3.0 (YAML)", YAML),
30+
OPEN_API_30("Open API 3.x", JSON),
31+
OPEN_API_30_YAML("Open API 3.x (YAML)", YAML),
3232
WSDL_API("WSDL", ".xml"),
3333
WADL_API("Web Application Description Language (WADL)", ".wadl"),
3434
ODATA_V2("OData V2 (converted to OpenAPI 3.0.1)", METADATA, "Given OData specification is converted into an OpenAPI 3 specification.",

modules/apim-adapter/src/main/java/com/axway/apim/api/specification/OAS3xSpecification.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,10 @@ public boolean parse(byte[] apiSpecificationContent) {
154154
if (this.mapper == null) return false;
155155
openApiNode = this.mapper.readTree(apiSpecificationContent);
156156
LOG.debug("openapi tag value : {}", openApiNode.get(OPENAPI));
157-
return openApiNode.has(OPENAPI) && openApiNode.get(OPENAPI).asText().startsWith("3.0.");
157+
return openApiNode.has(OPENAPI) && openApiNode.get(OPENAPI).asText().startsWith("3.");
158158
} catch (Exception e) {
159159
if (LOG.isDebugEnabled()) {
160-
LOG.error("No OpenAPI 3.0 specification.", e);
160+
LOG.error("No OpenAPI 3.x specification.", e);
161161
}
162162
return false;
163163
}

modules/apim-adapter/src/test/java/com/axway/apim/api/specification/APISpecificationFactoryTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.axway.apim.lib.CoreParameters;
88
import com.axway.apim.lib.error.AppException;
99
import com.axway.apim.lib.utils.Utils;
10+
import com.fasterxml.jackson.databind.JsonNode;
1011
import com.fasterxml.jackson.databind.ObjectMapper;
1112
import org.apache.commons.io.IOUtils;
1213
import org.apache.http.util.Asserts;
@@ -43,6 +44,23 @@ public void getAPISpecificationOpenApi() throws AppException {
4344
Assert.assertNotNull(apiSpecification.getApiSpecificationContent());
4445
}
4546

47+
@Test
48+
public void getAPISpecificationOpenApi31() throws AppException {
49+
String specDirPath = classLoader.getResource("com/axway/apim/adapter/spec").getFile();
50+
APISpecification apiSpecification = APISpecificationFactory.getAPISpecification("openapi31.json", specDirPath, "petstore");
51+
Assert.assertEquals(APISpecification.APISpecType.valueOf("OPEN_API_30"), apiSpecification.getAPIDefinitionType());
52+
Assert.assertNotNull(apiSpecification.getDescription());
53+
Assert.assertNotNull(apiSpecification.getApiSpecificationContent());
54+
// openapi 3.1 specific attribute
55+
ObjectMapper mapper = apiSpecification.getMapper();
56+
try {
57+
JsonNode node = mapper.readTree(apiSpecification.getApiSpecificationContent());
58+
Assert.assertNotNull(node.get("info").get("summary").asText());
59+
} catch (IOException e) {
60+
throw new RuntimeException(e);
61+
}
62+
}
63+
4664
@Test
4765
public void getAPISpecificationSwagger2() throws AppException {
4866
String specDirPath = classLoader.getResource("com/axway/apim/adapter/spec").getFile();

0 commit comments

Comments
 (0)