When parsing this spec: v1beta3.json. This spec is using an old version: "swaggerVersion": "1.2"
With this code:
OpenAPIParser openApiParser = new OpenAPIParser();
ParseOptions options = new ParseOptions();
options.setResolve(true);
options.setFlatten(true);
OpenAPI openAPI = openApiParser.readLocation(inputSpec, null, options).getOpenAPI();
String string = Yaml.mapper().writerWithDefaultPrettyPrinter().writeValueAsString(openAPI);
System.out.println(string);
I have noticed following regression between version 2.0.1 and 2.0.2:
--- a/converted.yaml (version 2.0.1)
+++ b/converted.yaml (version 2.0.2)
@@ -32,7 +32,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/v1beta3.Binding"
+ $ref: "v1beta3.Binding"
extensions: {}
extensions: {}
extensions: {}
@@ -66,7 +66,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/v1beta3.ComponentStatus"
+ $ref: "v1beta3.ComponentStatus"
extensions: {}
extensions: {}
extensions: {}
@@ -125,7 +125,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/v1beta3.ComponentStatusList"
+ $ref: "v1beta3.ComponentStatusList"
extensions: {}
extensions: {}
extensions: {}
@@ -144,14 +144,14 @@
description: "list of component conditions observed"
extensions: {}
items:
- $ref: "#/components/schemas/v1beta3.ObjectReference"
+ $ref: "v1beta3.ObjectReference"
extensions: {}
kind:
type: "string"
description: "kind of object, in CamelCase; cannot be updated"
extensions: {}
metadata:
- $ref: "#/components/schemas/v1beta3.ObjectMeta"
+ $ref: "v1beta3.ObjectMeta"
extensions: {}
v1beta3.ObjectMeta:
type: "object"
@@ -218,14 +218,14 @@
description: "list of component status objects"
extensions: {}
items:
- $ref: "#/components/schemas/v1beta3.ComponentStatus"
+ $ref: "v1beta3.ComponentStatus"
extensions: {}
kind:
type: "string"
description: "kind of object, in CamelCase; cannot be updated"
extensions: {}
metadata:
- $ref: "#/components/schemas/v1beta3.ObjectMeta"
+ $ref: "v1beta3.ObjectMeta"
extensions: {}
v1beta3.Binding:
required:
@@ -241,10 +241,10 @@
description: "kind of object, in CamelCase; cannot be updated"
extensions: {}
metadata:
- $ref: "#/components/schemas/v1beta3.ObjectMeta"
+ $ref: "v1beta3.ObjectMeta"
extensions: {}
target:
- $ref: "#/components/schemas/v1beta3.ObjectReference"
+ $ref: "v1beta3.ObjectReference"
extensions: {}
v1beta3.ObjectReference:
type: "object"
If you validate the converted yaml file, you get an error like this:
Invalid Reference - Unable to resolve the reference. The value must be a valid JSON Reference (for external references) or JSON Pointer (for local references), and must resolve to an object of the expected type.
This is a big regression. I think the problem is located in version 1.0.37 of io.swagger:swagger-parser. If you force maven to use the previous version like this:
<dependency>
<groupId>io.swagger.parser.v3</groupId>
<artifactId>swagger-parser</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-parser</artifactId>
<version>1.0.36</version>
</dependency>
The references in the converted document are correct.
Maven GAV:
<dependency>
<groupId>io.swagger.parser.v3</groupId>
<artifactId>swagger-parser</artifactId>
<version>2.0.2</version>
</dependency>
When parsing this spec: v1beta3.json. This spec is using an old version:
"swaggerVersion": "1.2"With this code:
I have noticed following regression between version
2.0.1and2.0.2:If you validate the converted yaml file, you get an error like this:
This is a big regression. I think the problem is located in version
1.0.37ofio.swagger:swagger-parser. If you force maven to use the previous version like this:The references in the converted document are correct.
Maven GAV: