Skip to content

External $ref in paths doesn't follow a relative URI #53

@pwfff

Description

@pwfff

Example (another_file.yaml is hosted alongside the parent yaml file, and works with swagger-ui):

paths:
  $ref: 'another_file.yaml'
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/core.py", line 359, in create
    app.prepare(strict=strict)
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/core.py", line 324, in prepare
    self._prepare_obj(strict=strict)
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/core.py", line 267, in _prepare_obj
    s.scan(root=self.__root, route=[Resolve()])
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/scan.py", line 125, in scan
    handle_cls(cls)
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/scan.py", line 118, in handle_cls
    ret = ff(the_self, path, obj, self.app)
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/scanner/v2_0/resolve.py", line 78, in _path_item
    _merge(obj, app, '#/paths', PathItemContext)
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/scanner/v2_0/resolve.py", line 44, in _merge
    _resolve(cur, app, prefix, ctx)
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/scanner/v2_0/resolve.py", line 26, in _resolve
    ro = app.resolve(normalize_jr(r, prefix), parser)
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/core.py", line 400, in resolve
    obj = self.root.resolve(utils.jp_split(jp)[1:]) # heading element is #, mapping to self.root
  File "---/.virtualenvs/uad/lib/python2.7/site-packages/pyswagger/spec/base.py", line 276, in resolve
    obj = obj[t]
KeyError: 'another_file.yaml'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions