OpenAPITools / OpenAPITools/openapi-generator
[BUG][Java][Spring] implicitHeaders replace the - in header name by a camelCased name
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 26.8k
- Forks
- 7.7k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug Report Checklist
- Have you provided a full/minimal spec to reproduce the issue?
- Have you validated the input using an OpenAPI validator (example)?
- Have you tested with the latest master to confirm the issue still exists?
- Have you searched for related issues/PRs?
- What's the actual output vs expected output?
- [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
Using the maven plugin configuration with implicitHeaders and with this API specification :
openapi: 3.0.2
info:
title: Whatever
version: 1.0.0
paths:
/Whatever:
summary: Get Whatever
parameters:
- name: 'X-Whatever-Code'
in: header
required: true
description: Whatever
allowEmptyValue: false
schema:
type: string
get:
responses:
'200':
description: Whatever
content:
application/json:
schema:
type: string
The name of the implicit param is defined to xWhateverCode instead of X-Whatever-Code
@ApiImplicitParams({
@ApiImplicitParam(name = "xWhateverCode", value = "Whatever", required=true, dataType = "String", paramType = "header"),
})
openapi-generator version
4.3.1
OpenAPI declaration file content or url
openapi: 3.0.2
info:
title: Whatever
version: 1.0.0
paths:
/Whatever:
summary: Get Whatever
parameters:
- name: 'X-Whatever-Code'
in: header
required: true
description: Whatever
allowEmptyValue: false
schema:
type: string
get:
responses:
'200':
description: Whatever
content:
application/json:
schema:
type: string
Generation Details
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.3.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<output>${openapi.generation.directory}</output>
<inputSpec>src/main/resources/openapi.yaml</inputSpec>
<generatorName>spring</generatorName>
<apiPackage>com.whatever.api.controller</apiPackage>
<modelPackage>com.whatever.api.model</modelPackage>
<generateSupportingFiles>false</generateSupportingFiles>
<configOptions>
<sourceFolder>.</sourceFolder>
<groupId>whatever</groupId>
<invokerPackage>com.whatever.api</invokerPackage>
<dateLibrary>java8</dateLibrary>
<artifactId>whatever-api</artifactId>
<artifactVersion>1.0.0</artifactVersion>
<configPackage>com.whatever.configuration</configPackage>
<basePackage>com.whatever</basePackage>
<reactive>true</reactive>
<interfaceOnly>true</interfaceOnly>
<skipDefaultInterface>true</skipDefaultInterface>
<implicitHeaders>true</implicitHeaders>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
Steps to reproduce
Simply generate the source code with the configurations above
Related issues/PRs
Seems to be a similar problem with Kotlin generation : https://github.com/OpenAPITools/openapi-generator/issues/7322
Suggest a fix
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le point d’entrée du générateur Spring utilisé par le plugin Maven et suivez la manière dont l’option implicitHeaders convertit le nom d’en-tête OpenAPI X-Whatever-Code. Reproduisez le problème avec la spécification OpenAPI 3.0.2 et la configuration Spring fournies, puis vérifiez que les métadonnées @ApiImplicitParam générées conservent le nom d’en-tête attendu et ajoutez ou mettez à jour le test de générateur correspondant s’il en existe un.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, spring
- Domaine
- api, backend
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100