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
  • #582
Closed
Open
Issue created Jul 17, 2018 by Administrator@rootContributor

Model not generated with the right type (allOf)

Created by: JFCote

Description

A member of a model is not using the model type requested by the spec. Please check the example for a better explanation

openapi-generator version

Master (3.1.1-SNAPSHOT)

OpenAPI declaration file content or url

This is a self contained file that reproduce the issue

swagger: "2.0"
info:
  description: "dfsdfsdfs"
  version: "1.0.0"
  title: "Swagger Petstore"
  termsOfService: "http://swagger.io/terms/"
  contact:
    email: "apiteam@swagger.io"
  license:
    name: "Apache 2.0"
    url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "petstore.swagger.io"
basePath: "/v2"
schemes:
- "https"
- "http"
paths:
  /lifecycles:
    put:
      tags:
        - Device
      summary: xxxxxxx
      operationId: editDeviceLifecycles
      parameters:
      - in: body
        name: device-lifecycle-update-info
        required: true
        schema:
          $ref: "#/definitions/DeviceLifecycleCore"
      responses:
        200:
          description: OK
          schema:
            $ref: "#/definitions/DeviceLifecycleCore"
definitions:
  DeviceLifecycleCore:
    type: object
    description: "DeviceLifecycleCore"
    properties:
      aaa:
        type: string
        description: "aaa"
      bbb:
        type: string
        description: "bbb"
      ccc:
        type: string
        description: "ccc"
      returnSoftwareStatus:
        $ref: "#/definitions/DeviceLifecycleStatus"
  DeviceLifecycleStatus:
    type: object
    description: "DeviceLifecycleStatus"
    allOf:
      - $ref: "#/definitions/DeviceLifecycleStatusCore"
      - type: object
        required:
          - id
        properties:
          id:
            type: integer
            format: int64
            description: "Id associated with the status"
            example: 123
  DeviceLifecycleStatusCore:
    type: object
    description: "DeviceLifecycleStatusCore"
    properties:
      name:
        type: string
        description: "Name"
      details:
        type: string
        description: "Any additional information needed for the status"
        example: "Something is wrong"

As you can see returnSoftwareStatus is supposed to be of type DeviceLifecycleStatus. If you look in the generated code, you will see that it is of type DeviceLifecycleStatusCore instead:

public DeviceLifecycleCore returnSoftwareStatus(DeviceLifecycleStatusCore returnSoftwareStatus) {
    this.returnSoftwareStatus = returnSoftwareStatus;
    return this;
  }

   /**
   * DeviceLifecycleStatus
   * @return returnSoftwareStatus
  **/
  @Valid
  public DeviceLifecycleStatusCore getReturnSoftwareStatus() {
    return returnSoftwareStatus;
  }

  public void setReturnSoftwareStatus(DeviceLifecycleStatusCore returnSoftwareStatus) {
    this.returnSoftwareStatus = returnSoftwareStatus;
  }
Command line used for generation

java -jar openapi-generator-cli.jar generate -i ./swagger.yaml --generator-name java-play-framework -o generatedServer -DhideGenerationTimestamp=true,booleanGetterPrefix=is

Steps to reproduce

Just run the command above

Related issues/PRs

None

Suggest a fix/enhancement

?

Assignee
Assign to
Time tracking