Open shulard opened 2 years ago
thanks for reporting this. reduceDots
does not simply remove the dots, it should resolve cases like e.g. /some/path/to/subdir/../../openapi.yml
to /some/path/openapi.yml
. There might be a bug so that it does not do that correctly in your case.
added a failing test for this case. You can work around it by removing the reference to the current directory: ./
this should work:
$ref: '../schema/file.yaml#/FileListResponse'
Ok, thank you for the ./
fix, it works on my side ^^
Hello !
First, thank you for your awesome library, it helps us a lot manipulating our OpenAPI definitions.
We found a tiny issue about reference resolution in our local configuration.
I give you a tiny sample to describe our usage. We have a
doc/api
folder which contains anopenapi.yaml
file like this :Then here is the
doc/api/upload/files.yaml
:And finally the
doc/api/schema/file.yaml
which looks like :As you can see, we use relative paths in our
$ref
attributes. I simplified a bit the definition but the idea is here. Whenever a$ref
contains..
, there are skipped.I checked in the library code and found that the
cebe\openapi\ReferenceContext::reduceDots
remove all the..
from the given paths. If I just skip this methods, my API doc is correctly imported and used.I don't know what's the expected behavior here. If I can help (giving more details or contributing code), I'll be glad to do it ^^