Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Issues
  • #758
Closed
Open
Issue created Aug 07, 2018 by Administrator@rootContributor

jaxrs-spec: @Path-Generation is wrong for resource-path "/"

Created by: attrobit

Description

When we define our primary resource under path "/" (see declaration file), jaxrs-spec generates the following stub:

@Path("/default")
@Api(description = "the default API")
...
public interface DefaultApi {
...
}

The generated path "/default" is wrong and the name of the interface is confusing. Additionally to that the following interface will be generated for the path "/{uuid}":

@Path("/{uuid}")
@Api(description = "the {uuid} API")
...
public interface UuidApi {
}
openapi-generator version

3.2.1-SNAPSHOT

OpenAPI declaration file content or url
paths:
  /:
    get:
      summary: findArbeitsstoff
      operationId: FindArbeitsstoffe
      tags:
        - Arbeitsstoff
      parameters:
        - name: cas
          in: query
          description: Kennung des Arbeitsstoffes
          required: true
          schema:
            $ref: '#/components/schemas/CasKey'
      responses:
        200:
          description: Gefilterte Arbeitsstoffsliste
          content:
            application/arbeitsstoff-v2+pdf:
              schema:
                $ref: '#/components/schemas/ArbeitsstoffDtoList'
            application/arbeitsstoff-v2+json:
              schema:
                $ref: '#/components/schemas/ArbeitsstoffDtoList'
  /{uuid}:
    get:
      summary: getArbeitsstoff
      description: Gibt einen individuellen Arbeitsstoff zurück
      tags:
        - Arbeitsstoff
      operationId: GetArbeitsstoff
      parameters:
        - name: uuid
          in: path
          description: UUID des Arbeitsstoffes
          required: true
          schema:
            $ref: '#/components/schemas/UUID'
      responses:
        200:
          description: Ausgewählter Arbeitsstoff
          content:
            application/arbeitsstoff-v2+pdf:
              schema:
                $ref: '#/components/schemas/ArbeitsstoffDto'
            application/arbeitsstoff-v2+json:
              schema:
                $ref: '#/components/schemas/ArbeitsstoffDto'
        590:
          $ref: '#/components/responses/ProgrammierFehler'
    put:
Command line used for generation

Maven configuration:

                    <plugin>
                        <groupId>org.openapitools</groupId>
                        <artifactId>openapi-generator-maven-plugin</artifactId>
                        <version>3.2.1-SNAPSHOT</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                                <configuration>
                                    <inputSpec>
                                        ${project.basedir}/src/main/resources/${project.serviceContract.fileName}
                                    </inputSpec>
                                    <output>${project.basedir}</output>
                                    <language>jaxrs-spec</language>
                                    <generateModels>true</generateModels>
                                    <generateApis>true</generateApis>
                                    <generateApiTests>false</generateApiTests>
                                    <generateApiDocumentation>false</generateApiDocumentation>
                                    <generateModelTests>false</generateModelTests>
                                    <configOptions>
                                        <apiPackage>${project.targetPackage}</apiPackage>
                                        <modelPackage>${project.targetPackage}.dto</modelPackage>
                                        <sourceFolder>src/main/generated</sourceFolder>
                                        <dateLibrary>java8</dateLibrary> <!-- jaxrs-spec -->
                                        <interfaceOnly>true</interfaceOnly> <!-- jaxrs-spec -->
                                        <returnResponse>true</returnResponse> <!-- jaxrs-spec -->
                                    </configOptions>
                                    <generateSupportingFiles>false</generateSupportingFiles>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
Steps to reproduce

Define some primary resources under path "/" (see example contract) and generate the jaxrs stubs.

Related issues/PRs
Suggest a fix/enhancement

My suggestion is using the tags to grouping the methods into interfaces like jaxrs-cxf.

Assignee
Assign to
Time tracking