apache / apache/servicecomb-java-chassis
使用@path@post注解时,请求参数中存在Boolean类型时会把Boolean类型识别为Body
- 主要言語
- Java
- スター
- 1.9k
- フォーク
- 814
- 平均マージ
- 8日 23時間
- マージ済み PR(30日)
- 1
説明
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)_
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
AbstractOperationGenerator.java から始め、特に initParameterGenerators、scanMethodParameters、generate を確認し、その後、示されている executeSkill メソッドについて @BeanParam、@RequestBody、Boolean @HeaderParam フィールドがどのように分類されるかを追跡します。Swagger 生成の失敗を再現し、2 つのヘッダーパラメーターがボディパラメーターとしてカウントされず、定義されている 3 body parameter 例外を発生させなくなったことを検証します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- api, backend-api-design
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100