apache / apache/servicecomb-java-chassis

使用@path@post注解时,请求参数中存在Boolean类型时会把Boolean类型识别为Body

Offen
#2,735 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
1.9k
Forks
814
Ø Merge
8 T. 23 Std.
Gemergte PRs (30 T.)
1

Beschreibung

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)_

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne mit AbstractOperationGenerator.java, insbesondere mit initParameterGenerators, scanMethodParameters und generate, und verfolge anschließend, wie @BeanParam-, @RequestBody- und Boolean @HeaderParam-Felder für die gezeigte executeSkill-Methode klassifiziert werden. Reproduziere den Swagger-Generierungsfehler und verifiziere, dass die beiden Header-Parameter nicht als Body-Parameter gezählt werden und nicht mehr die definierte Ausnahme für 3 Body-Parameter auslösen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
api, backend-api-design
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.