[Bug, python-legacy] Generate list of reference is generated as an object instead of list[Pet] with OpenAPI 3.1.0
Created by: GuillaumeSmaha
Bug Report Checklist
-
Have you provided a full/minimal spec to reproduce the issue? -
Have you validated the input using an OpenAPI validator (example)? -
Have you tested with the latest master to confirm the issue still exists? -
Have you searched for related issues/PRs? -
What's the actual output vs expected output? - [] [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
The response for findByStatus
is generated as a object instead of a list.
openapi-generator version
6.2.1 or master branch
OpenAPI declaration file content or url
Based on https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/test/resources/3_0/petstore_oas3_test.yaml and updating the OpenAPI version to 3.1.0
(removing license
to be compatible)
openapi: 3.1.0
servers:
- url: 'http://petstore.swagger.io/v2'
info:
description: >-
A test spec based on the Petstore spec with OAS3 related test cases such as nullable
version: 1.0.0
title: OpenAPI Petstore
tags:
- name: pet
description: Everything about your Pets
- name: store
description: Access to Petstore orders
- name: user
description: Operations about user
paths:
/pet/findByStatus:
get:
tags:
- pet
summary: Finds Pets by status
description: Multiple status values can be provided with comma separated strings
operationId: findPetsByStatus
parameters:
- name: status
in: query
description: Status values that need to be considered for filter
required: true
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- available
- pending
- sold
default: available
responses:
'200':
description: successful operation
content:
application/xml:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid status value
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
components:
schemas:
Category:
title: Pet category
description: A category for a pet
type: object
properties:
id:
type: integer
format: int64
name:
type: string
xml:
name: Category
User:
title: a User
description: A User who is purchasing from the pet store
type: object
properties:
id:
type: integer
format: int64
username:
type: string
firstName:
type: string
lastName:
type: string
email:
type: string
password:
type: string
phone:
type: string
userStatus:
type: integer
format: int32
description: User Status
xml:
name: User
Tag:
title: Pet Tag
description: A tag for a pet
type: object
properties:
id:
type: integer
format: int64
name:
type: string
xml:
name: Tag
Pet:
title: a Pet
description: A pet for sale in the pet store
type: object
required:
- name
- photoUrls
properties:
id:
type: integer
format: int64
category:
$ref: '#/components/schemas/Category'
name:
type: string
example: doggie
photoUrls:
type: array
xml:
name: photoUrl
wrapped: true
items:
type: string
tags:
type: array
xml:
name: tag
wrapped: true
items:
$ref: '#/components/schemas/Tag'
status:
type: string
description: pet status in the store
enum:
- available
- pending
- sold
xml:
name: Pet
Steps to reproduce
docker run --rm -u $(id -u):$(id -g) -v $(pwd):/local -w /local \
openapitools/openapi-generator-cli:latest generate \
-i petstore_oas3.1_test.yaml \
-o python-client \
-g python-legacy
Result expected
For example, using python-legacy
generator, I get:
response_types_map = {
200: "object",
400: None,
}
instead of a list of Pet
with OpenAPI: 3.0.x
:
response_types_map = {
200: "list[Pet]",
400: None,
}