swagger-api / swagger-api/swagger-codegen
[JAVA + feign] Camel case logic for Feign client generation generates wrong code with more than one path variable
Nobody has claimed this yet.
- Dominant language
- Mustache
- Stars
- 17.8k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
Description
Camel case logic for Feign client generation generates wrong code with more than one path variable.
A path like /customers/{customerEntity}-{customerNumber} will generate @RequestLine("GET /customers/{customerEntity}{customerNumber}") (note the missing dash).
Was introduced in https://github.com/swagger-api/swagger-codegen/commit/2e8eea9c1832735babc7eb499bceaa3e43b79a51
Swagger-codegen version
since https://github.com/swagger-api/swagger-codegen/commit/2e8eea9c1832735babc7eb499bceaa3e43b79a51
Swagger declaration file content or url
Command line used for generation
def contract = "$rootDir/contracts/client/service.yaml"
def targetPackage = "com.xxx"
def config = new io.swagger.codegen.config.CodegenConfigurator()
config.setTemplateDir(file('gradle/swagger-generator-templates/java-client').path)
config.setInputSpec(contract)
config.setOutputDir(file('build/generated-sources/swagger').path)
config.setLang('java')
config.setAdditionalProperties([
'library' : "feign",
'java8' : 'true',
'modelPackage' : "${targetPackage}.model".toString(),
'apiPackage' : "${targetPackage}.api".toString(),
'generateModels' : true,
'generateApiDocumentation': true,
'generateSupportingFiles' : false,
'generateApiTests' : true,
'dateLibrary' : 'java8',
'bigDecimalAsString' : true
])
Steps to reproduce
Generate the client using the options above.
Related issues/PRs
I will send a PR
Suggest a fix/enhancement
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
Start by reproducing Feign client generation with the /customers/{customerEntity}-{customerNumber} path and the command-line configuration shown in the issue. Inspect the camel-case logic introduced by commit 2e8eea9c1832735babc7eb499bceaa3e43b79a51; done means the generated @RequestLine preserves the dash between both path variables.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100