Skip to content

Reference parsing doesn't work in the CLI tool using relative paths. #164

Open
@shulard

Description

@shulard

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.yaml

Then 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 ^^

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions