Skip to content

Circular references should be allowed as per Swagger 2.0 API Spec. #62

@SimplicityGuy

Description

@SimplicityGuy

Other codegen tools support circular references. See swagger-api/swagger-codegen#728.

I this this issue with the following yml:

  Node:
    description: Generic node.
    type: object
    properties:
      type:
        description: Type or label of the node.
        type: string
      properties:
        description: Node specific dictionary of key/value pairs.
        type: object
        additionalProperties:
          type: string
      relationships:
        descriptions: Relationships this node has with other nodes.
        type: array
        items:
          $ref: '#/definitions/Relationship'
  Relationship:
    description: Relationship that one node has with another.
    type: object
    properties:
      type:
        description: Type of relationship between nodes.
        type: string
      properties:
        description: Relationship specific dictionary of key/value pairs.
        type: object
        additionalProperties:
          type: string
      node:
        $ref: '#/definitions/Node'

Exception:

Traceback (most recent call last):
  File "/usr/local/bin/swagger_py_codegen", line 11, in <module>
    sys.exit(generate())
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/swagger_py_codegen/command.py", line 77, in generate
    swagger = Swagger(data)
  File "/usr/local/lib/python2.7/site-packages/swagger_py_codegen/parser.py", line 29, in __init__
    self._references_sort()
  File "/usr/local/lib/python2.7/site-packages/swagger_py_codegen/parser.py", line 67, in _references_sort
    raise ValueError(msg)
ValueError: $ref circular references found!

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