OpenAPITools / openapi-generator

OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
https://openapi-generator.tech
Apache License 2.0
21.85k stars 6.59k forks source link

[BUG][typescript-angular] response with anyOf type array leads to wrong imports in generated code #9301

Open hofR opened 3 years ago

hofR commented 3 years ago
Description

If anyOf with type array is used in a response, the generated code uses wrong imports:

import { Array<ImageDTO> } from '../model/models';
import { Array<ImageFileDTO> } from '../model/models';
openapi-generator version

5.1.0

OpenAPI declaration file content or url

Defining the following schema in a response:

"schema": {
    "title": "Get Content",
    "anyOf": [
      {
        "type": "array",
        "items": { "$ref": "#/components/schemas/ImageFile" }
      },
      {
        "type": "array",
        "items": { "$ref": "#/components/schemas/Image" }
      }
    ]
}

leads to the following import statements, which try to import the array type:

import { Array<ImageDTO> } from '../model/models';
import { Array<ImageFileDTO> } from '../model/models';

Correctly only ImageDTO and ImageFileDTO should be imported.

Here is a full example Gist

Command line used for generation

java -jar openapi-generator-cli-5.1.0.jar generate -i openapi\minimal_openapi.json -g typescript-angular -o .\src\client --additional-properties=modelSuffix=DTO

Workaround

Wrapping the anyOf in a schema which is used as response does not lead to this issue.

amakhrov commented 3 years ago

Looks like a similar issue is reported here for typescript-axios: https://github.com/OpenAPITools/openapi-generator/issues/9163#issuecomment-821881644