Using openapi-generator-maven-plugin 7.12.0 and swagger-parser 2.1.25, use the follwijhg small test case as input spec:
---
servers:
- url: "http://localhost:8080"
openapi: "3.1.0"
paths:
/v1/test/{tid}:
$ref: "./anyFile.yaml#/paths/~1v1~1test~1{tid}"
/v2/test/{tid}:
$ref: "#/paths/~1v1~1test~1{tid}"
info:
title: "test case"
description: "bug reprduction test case "
version: "1.0.0"
Both path reference examples get a URI syntax exception complaining about the opening curly bracket. Stack trace is like:
[ERROR] Error resolving #/paths/~1v1~1test~1{tid}
java.net.URISyntaxException: Illegal character in fragment at index 20: #/paths/~1v1~1test~1{tid}
at java.base/java.net.URI$Parser.fail(URI.java:2995)
at java.base/java.net.URI$Parser.checkChars(URI.java:3166)
at java.base/java.net.URI$Parser.parse(URI.java:3210)
at java.base/java.net.URI.<init>(URI.java:645)
at io.swagger.v3.parser.reference.ReferenceUtils.toBaseURI(ReferenceUtils.java:15)
at io.swagger.v3.parser.reference.ReferenceVisitor.toBaseURI(ReferenceVisitor.java:65)
at io.swagger.v3.parser.reference.ReferenceVisitor.toReference(ReferenceVisitor.java:69)
at io.swagger.v3.parser.reference.ReferenceVisitor.resolveRef(ReferenceVisitor.java:205)
at io.swagger.v3.parser.reference.ReferenceVisitor.visitPathItem(ReferenceVisitor.java:108)
at io.swagger.v3.parser.reference.OpenAPI31Traverser.traversePathItem(OpenAPI31Traverser.java:383)
at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseMap(OpenAPI31Traverser.java:947)
at io.swagger.v3.parser.reference.OpenAPI31Traverser.traversePaths(OpenAPI31Traverser.java:197)
at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseOpenApi(OpenAPI31Traverser.java:124)
at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverse(OpenAPI31Traverser.java:65)
at io.swagger.v3.parser.reference.OpenAPIDereferencer31.dereference(OpenAPIDereferencer31.java:74)
at io.swagger.v3.parser.OpenAPIV3Parser.resolve(OpenAPIV3Parser.java:227)
with openapi: "3.0.0" it works fine, only compaining about the nonexistance of the referenced file..
Using
openapi-generator-maven-plugin7.12.0 andswagger-parser2.1.25, use the follwijhg small test case as input spec:Both path reference examples get a URI syntax exception complaining about the opening curly bracket. Stack trace is like:
with
openapi: "3.0.0"it works fine, only compaining about the nonexistance of the referenced file..