apache / apache/servicecomb-java-chassis
使用@path@post注解时,请求参数中存在Boolean类型时会把Boolean类型识别为Body
- Langage dominant
- Java
- Étoiles
- 1.9k
- Forks
- 814
- Merge moyen
- 8 j 23 h
- PR mergées (30 j)
- 1
Description
bool值isSync、isGray定义在IntentRequestHeaders 实体类中
```
public CompletableFuture executeSkill(
@BeanParam @NotNull IntentRequestHeaders intentRequestHeaders,
@RequestBody @NotNull IntentRequest intentRequest) {}
```
```
@HeaderParam("x-is-sync")
private Boolean isSync;
@HeaderParam("x-is-gray")
private Boolean isGray;
```
报错信息:
_java.lang.IllegalStateException: defined 3 body parameter.
at org.apache.servicecomb.swagger.generator.core.AbstractOperationGenerator.initParameterGenerators(AbstractOperationGenerator.java:222)
at org.apache.servicecomb.swagger.generator.core.AbstractOperationGenerator.scanMethodParameters(AbstractOperationGenerator.java:192)
at org.apache.servicecomb.swagger.generator.core.AbstractOperationGenerator.generate(AbstractOperationGenerator.java:152)
at org.apache.servicecomb.swagger.generator.core.AbstractSwaggerGenerator.scanMethods(AbstractSwaggerGenerator.java:297)_
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par AbstractOperationGenerator.java, en particulier initParameterGenerators, scanMethodParameters et generate, puis suivez la manière dont les champs @BeanParam, @RequestBody et Boolean @HeaderParam sont classés pour la méthode executeSkill présentée. Reproduisez l’échec de génération de Swagger et vérifiez que les deux paramètres d’en-tête ne sont pas comptés comme des paramètres de corps et ne produisent plus l’exception définie pour 3 paramètres de corps.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- api, backend-api-design
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100