swagger-api / swagger-api/swagger-codegen

Generating code from YAML without annotations

Open
#9,004 2 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Mustache
Stars
17.8k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

I am generating Java 8 code from yaml file specifying my REST API. Models generated with some swagger annotations that I want to get rid of. Is it possible somehow? And maybe it will be possible in the nearest future ?

Rest models will be traveling through Camle routes, so I would like to use jaxrs annotations if any..

I am using openapi 3.0.0 version, so I have to use newest swagger maven codegen plugin (which I find 3.0.0-rc1 in maven repository)

I am using:
<generateModelDocumentation>false</generateModelDocumentation>

The generated model:

  import io.swagger.annotations.ApiModel; //THIS IS NOT COMPILING and i dont need annotated models, just simple pojo classes or maybe some jackson annotations instead swagger specific..
    import io.swagger.annotations.ApiModelProperty;

    /**
     * The requested data to the service.
     */@ApiModel(description = "The requested data to the service.")
    @javax.annotation.Generated(value = "io.swagger.codegen.languages.java.JavaClientCodegen", date = "*****")
  @JsonProperty("myField")
  private String myField= null;
}

The pom.xml configuration:

<plugin>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-codegen-maven-plugin</artifactId>
                    <version>3.0.0-rc1</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                            <configuration>
<inputSpec>${project.basedir}/swagger/MyCustomSpecification.yaml</inputSpec>
                        <language>java</language>
                        <configOptions>
                            <dateLibrary>java8</dateLibrary>
                            <java8>true</java8>
                            <interfaceOnly>true</interfaceOnly>
                            <useJaxbAnnotations>false</useJaxbAnnotations>
                        </configOptions>
                        <generateApis>false</generateApis>
                        <generateApiTests>false</generateApiTests>
                        <generateModelTests>false</generateModelTests>
                        <generateModelDocumentation>false</generateModelDocumentation>
                        <generateSupportingFiles>false</generateSupportingFiles>
                        <generateApiDocumentation>false</generateApiDocumentation>
                        <modelPackage>${project.groupId}.swagger.model</modelPackage>
                        <apiPackage>${project.groupId}.swagger.api</apiPackage>
                        <invokerPackage>${project.groupId}.swagger.invoker</invokerPackage>
                        <library>resttemplate</library>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the Java model output and the swagger-codegen Maven plugin configuration shown in the issue, especially the model annotation-related options. Determine whether disabling Swagger model annotations is supported for the OpenAPI 3.0 Java generator and identify the relevant generated-model behavior; done means a documented configuration or a confirmed limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.