-
Notifications
You must be signed in to change notification settings - Fork 94
Description
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 an openapi.yaml file like this :
openapi: 3.0.3
paths:
/api/files:
$ref: upload/files.yamlThen here is the doc/api/upload/files.yaml :
get:
operationId: getUploadFiles
summary: Get all the non deleted uploaded file batchs
responses:
'200':
content:
'application/json':
schema:
$ref: './../schema/file.yaml#/FileListResponse'And finally the doc/api/schema/file.yaml which looks like :
File:
type: object
required:
- id
- type
- attributes
properties:
type:
type: string
example: file
id:
type: string
format: UUIDv4
example: d6e6ad56-3874-48c7-9265-97f27808dac3
attributes:
type: object
relationships:
type: object
ArrayOfFile:
type: array
items:
$ref: '#/File'
FileListResponse:
type: object
properties:
data:
$ref: '#/ArrayOfFile'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 ^^