Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JAVASpring] Incorrect model classnames but only in lists? #12391

Open
RHinderiks opened this issue May 6, 2024 · 0 comments
Open

[JAVASpring] Incorrect model classnames but only in lists? #12391

RHinderiks opened this issue May 6, 2024 · 0 comments

Comments

@RHinderiks
Copy link

Description

Since our main.yaml was getting oversized way too quickly we decided to split the file up in separate files and $ref them in the main.yaml. However when using the following code

 details:
    type: array
    items:
      $ref: './DetailDto.yaml'

The DetailDto is generated correctly but the details list will look for the following class SchemasDetailDtoYaml.java which seems to be the path. When everything was in a single file and we referenced #/components/schemas/DetailDto everything was fine.

Swagger-codegen version

3.0.55, also broken in 3.0.52. Haven't used any other version yet

Swagger declaration file content or url

Main.yaml

    DataDto:
      $ref: './schemas/DataDto.yaml'

    DetailDto:
      $ref: './schemas/DetailDto.yaml'

Data.yaml

    type: object
    properties:
        details:
            type: array
            items:
                $ref: './DetailDto.yaml'
Command line used for generation

<plugin> <groupId>io.swagger.codegen.v3</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>3.0.52</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/src/main/resources/api/main.yaml</inputSpec> <!-- allows you to generate a list of configuration options, won't generate code if enabled --> <!-- <configHelp>true</configHelp>--> <output>src/main/java</output> <templateDirectory>${project.basedir}/templates</templateDirectory> <language>spring</language> <modelPackage>org.joorz.project.dto.generated</modelPackage> <apiPackage>org.joorz.project.service.generated</apiPackage> <configOptions> <interfaceOnly>true</interfaceOnly> <hideGenerationTimestamp>true</hideGenerationTimestamp> <dateLibrary>java8</dateLibrary> <sourceFolder>/</sourceFolder> </configOptions> </configuration> </execution> </executions> </plugin>

Steps to reproduce
  1. Create the yaml files like mentioned above
  2. Execute maven build command
  3. Get compile errors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant