swagger-api / swagger-core

Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
http://swagger.io
Apache License 2.0
7.36k stars 2.17k forks source link

Incorrect OpenAPI specification produced for an Iterable of enums in Scala #4675

Open nils1k opened 1 month ago

nils1k commented 1 month ago

Describe the bug

When I have a field of type Iterable of an enum, e.g. a Set or a Seq, then springdoc is not generating the correct OpenAPI specification.

To Reproduce Steps to reproduce the behavior:

What version of spring-boot you are using? Version 3.2.5.

What modules and versions of swagger-core are you using? I'm using version 2.5.0 of the org.springdoc:springdoc-openapi-starter-webmvc-ui module, which in turn has a dependency on version 2.2.21 on io.swagger.core.v3:swagger-core-jakarta.

What is the actual and the expected result using OpenAPI Description (yml or json)? Expected result:

"fareClasses": {
    "type": "array",
    "description": "FareClasses",
    "items": {
        "type": "string"
    }
}

Actual result:

"fareClasses": {
    "type": "array",
    "description": "FareClasses",
    "items": {
        "type": "string",
        "enum": [
            "FIRST_CLASS",
            "SECOND_CLASS",
            "THIRD_CLASS",
            "ECONOMY_CLASS"
        ]
    }
}

Please refer to the sample code that reproduces the issue.

Expected behavior

The fareClasses field should be an enum.

I originally posted this issue in the springdoc issue tracker, but realised that this might be an issue in swagger-core.