openapi 3.1: Illegal character in fragment when path reference contains paramneters
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- java, openapi
- Domain
- api, backend-api-design
Research direction
Start with the supplied OpenAPI 3.1 YAML and reproduce the failure through OpenAPIV3Parser.resolve. Read ReferenceUtils.java, ReferenceVisitor.java, and the OpenAPI31Traverser path-item flow shown in the stack trace. Done means both path references containing {tid} no longer fail with a URI syntax exception, while the external missing-file behavior remains observable.
Written by the indexing model from the issue text.
Description
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..
- Dominant language
- Java
- Stars
- 867
- Forks
- 560
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 7
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from swagger-api/swagger-parser
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
swagger-api/swagger-parser#2386 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
swagger-api/swagger-parser#2168 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
swagger-api/swagger-parser#1922 · 2 comments · 1 reaction ·
-
[Bug]: Regression: resolveFully fails when components key does not match external file basename OpenBug
Difficulty 4/5 3-5 days Newbie friendliness 58/100
swagger-api/swagger-parser#2399 · 3 comments ·
-
Bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
swagger-api/swagger-parser#2395 ·
All issues in swagger-api/swagger-parser
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100