swagger-api / swagger-api/swagger-codegen
refer to properties in $ref get Compilation error in generated class although it is valid swagger yml
Nobody has claimed this yet.
- Dominant language
- Mustache
- Stars
- 17.8k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
From @noha-gamal on February 12, 2019 13:56
Q&A (please complete the following information)
- OS: [e.g. Windows 10 Enterprise]
- Browser: [e.g. chrome]
- Version: [e.g. 71.0.3578.98]
- Method of installation: [use online swagger editor https://editor.swagger.io/]
- Swagger/OpenAPI version: [e.g. Swagger 2.0, OpenAPI 3.0]
Content & configuration
Example Swagger/OpenAPI definition:
swagger: '2.0'
host: api.vodafone.com
basePath: '/{access}/eligibleProductOfferingAPI/v2'
schemes:
- https
consumes:
- application/json
produces:
- application/json
info:
title: 'Common Service Model API: EligibleProductOffering'
version: 2.1.0
paths:
/eligibleProductOffering:
get:
tags:
- eligibleProductOffering
description: >-
A method that allows a consumer of the API to get-list a
EligibleProductOffering representation.
operationId: getList
produces:
- application/json
responses:
'204':
description: '204, No Content.'
definitions:
eligibleProductOfferingVBOProductOffering:
properties:
id:
type: array
minItems: 1
items:
$ref: '#/definitions/BasicComponents/properties/IDType'
name:
type: string
description: ' The name of the instance of a business object or component.'
BasicComponents:
properties:
IDType:
type: object
properties:
value:
type: string
description: The value of the field.
schemeID:
type: string
schemeName:
type: string
schemeAgencyName:
type: string
required:
- value
Describe the bug you're encountering
Bug is in class EligibleProductOfferingVBOProductOffering.java get id attribute
private List id = null;
where class BasicComponentspropertiesIDType not found.
expected attribute id with type BasicComponentsIDType
To reproduce...
Steps to reproduce the behavior:
- Go to 'https://editor.swagger.io/'
- Paste above yml
4.Click on Generate Server then Spring
5.Spring-server-generated.zip downloaded, open it and go to spring-server\src\main\java\io\swagger\model\EligibleProductOfferingVBOProductOffering.java - Found compilation error in class generated.
Expected behavior
expected that id attribute in EligibleProductOfferingVBOProductOffering.java be
private List id = null;
instead of
private List id = null;
Copied from original issue: swagger-api/swagger-ui#5175
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue in https://editor.swagger.io/ with the supplied Swagger 2.0 YAML, then inspect the generated spring-server/src/main/java/io/swagger/model/EligibleProductOfferingVBOProductOffering.java file. Compare the generated id declaration with the expected BasicComponentsIDType reference and verify that the generated Spring server compiles without the missing BasicComponentspropertiesIDType class.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- backend-api-design, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100