swagger-py-codegen
swagger-py-codegen copied to clipboard
Nested self reference to a definition, results in circular dependency error
The YAML in question
Person:
required:
- name
- children
properties:
name:
type: string
children:
type: array
items:
$ref: '#/definitions/Person'
I believe my issue is similar to https://github.com/guokr/swagger-py-codegen/issues/62
Trying to generate code from a model definition such as above will result in the following error:
ValueError: $ref circular references found!
Full yaml:
swagger: '2.0'
info:
version: 1.0.0
title: Swagger Petstore
license:
name: MIT
host: petstore.swagger.io
basePath: "/v1"
schemes:
- http
consumes:
- application/json
produces:
- application/json
paths:
"/persons":
get:
summary: List all persons
operationId: listPersons
tags:
- persons
responses:
'200':
description: An paged array of persons
schema:
"$ref": "#/definitions/Person"
default:
description: unexpected error
schema:
"$ref": "#/definitions/Error"
post:
summary: Add a person
operationId: addPerson
tags:
- persons
parameters:
- in: body
name: body
required: true
schema:
"$ref": "#/definitions/Person"
responses:
'201':
description: person was created
schema:
"$ref": "#/definitions/Person"
default:
description: unexpected error
schema:
"$ref": "#/definitions/Error"
definitions:
Person:
required:
- name
- children
properties:
name:
type: string
children:
type: array
items:
"$ref": "#/definitions/Person"
Error:
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string
However, if I run the same yaml through swagger-codegen, valid Python code is generated.