-
-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error resolving circular references #208
Comments
Hi again, Let me add another example, even simpler, and with quite realistic data type names and references, so I hope it makes it quite apparent that the failure can indeed occur VERY frequently: File openapi: 3.0.0
info:
title: Main
version: 1.0.0
paths: {}
components:
schemas:
Family:
type: object
properties:
father:
$ref: 'A.yaml#/components/schemas/Person'
mother:
$ref: 'A.yaml#/components/schemas/Person'
friends:
$ref: 'A.yaml#/components/schemas/ListOfPersons' File openapi: 3.0.0
info:
title: A
version: 1.0.0
paths: {}
components:
schemas:
Person:
type: object
required: [ id ]
properties:
id:
type: string
children:
$ref: '#/components/schemas/ListOfPersons'
ListOfPersons:
type: array
items:
$ref: '#/components/schemas/Person' When the validation of
With swagger-parser 9.0.x, it validates successfully. Cheers, |
Hi,
I have found an error in the resolver in latest versions 10.0.x of swagger-parser (it was working fine in versions 9.0.x). The error occurs while de-referencing circular references in APIs with external references across different files.
Let me include an example of cross-referenced APIs, to reproduce the error:
Main file
openapi.yaml
:File
A.yaml
:If you try to validate the main API with swagger-parser 10.0.x, using e.g.:
SwaggerParser.validate('./openapi.yaml');
you get the error:
Token "A1" does not exist.
In earlier versions (9.x.0) it worked fine (as it should, since A1 is obviously resolvable).
For what is worth, and if it helps to troubleshoot the issue, I noted that in the main file
openapi.yaml
, the order of the items in theanyOf
construct, seems to matter. So, if you have:it fails the resolution. While, if you have:
it works fine (in versions 10.x.0 too!)
The text was updated successfully, but these errors were encountered: