swagger-api / swagger-api/swagger-codegen
Spring Model POJOs not being generated for matching schemas with different titles.
Nobody has claimed this yet.
- Dominant language
- Mustache
- Stars
- 17.8k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
Description
Not sure why, but when I create two path that have identical structures other than the name of the title, only the first titled object is generated.
Swagger-codegen version
Codegen 2.2.2:
Swagger declaration file content or url
swagger: '2.0'
info:
title: API
version: "0.0.1"
paths:
/app/alive:
get:
responses:
'200':
description: OK
schema:
title: AppHealthCheckResult
properties:
header:
$ref: '#/definitions/ResponseHeader'
result:
$ref: '#/definitions/GenericKeyValue'
/app/config:
get:
responses:
'200':
description: OK
schema:
title: GetAppConfigKeyResponse
properties:
header:
$ref: '#/definitions/ResponseHeader'
result:
$ref: '#/definitions/GenericKeyValue'
definitions:
ResponseHeader:
type: object
properties:
request-id:
type: string
description: Header for all response
GenericKeyValue:
type: object
properties:
name:
type: string
description: something
Command line used for generation
java -jar ../tools/swagger-codegen-cli-2.2.2.jar generate -i missing-models.yaml -l spring
Steps to reproduce
Using above the following is rendered...
I would also expect a model for GetAppConfigKeyResponse.java to be created.
[main] INFO io.swagger.parser.Swagger20Parser - reading from missing-models.yaml
[main] WARN io.swagger.codegen.ignore.CodegenIgnoreProcessor - Directory does not exist, or is inaccessible. No file will be evaluated.
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/model/AppHealthCheckResult.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/model/GenericKeyValue.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/model/ResponseHeader.java
[main] WARN io.swagger.codegen.DefaultCodegen - Empty operationId found for path: get /app/alive. Renamed to auto-generated operationId: appAliveGet
[main] WARN io.swagger.codegen.DefaultCodegen - Empty operationId found for path: get /app/config. Renamed to auto-generated operationId: appConfigGet
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/api/AppApiController.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/api/AppApi.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/pom.xml
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/README.md
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/configuration/HomeController.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/Swagger2SpringBoot.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/RFC3339DateFormat.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/resources/application.properties
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/api/ApiException.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/api/ApiResponseMessage.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/api/NotFoundException.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/api/ApiOriginFilter.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/src/main/java/io/swagger/configuration/SwaggerDocumentationConfig.java
[main] INFO io.swagger.codegen.AbstractGenerator - writing file /Users/roberhr/demo/codegen-bug/target/.swagger-codegen-ignore
##### Suggest a Fix
I'm not sure but it seems to me like there is a map collision or something.
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
Run the supplied missing-models.yaml example with swagger-codegen-cli-2.2.2 and the generate -l spring command, then inspect the model-generation entry point; no source file or test is named in the issue. Done means the generated Spring output contains both AppHealthCheckResult.java and GetAppConfigKeyResponse.java, along with the shared models.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100