私はSpringでエンドポイントを定義し、単一のApiParamをオプションとして定義しました。私は?id=xxx
パラメータなしでURLを記述する際にオプションのクエリが含まれていない場合、Swaggerは400エラーをスローします。
@RequestMapping(value = "/searchResult/getList", method = RequestMethod.GET)
@ApiOperation(value = "populate list")
public JasonMessage getList(@ApiParam(name="id", value = "id", required = false)
@RequestParam Integer id) {
はしかし、私は不正な形式のURLエラーで期待する400エラーを取得します。
これはなぜですか?私はそれをrequired = false
と定義しましたが、パス変数ではありませんが、少なくとも空のクエリパラメータを含めることなくURLを書く方法はありません(?id=
など)。
私はURLのための真に選択的なパラメータは何か混乱していますか、それはぐっすりした問題、春の問題、または私がどこかで作った間違いです。
レスポンスボディはno content
で、レスポンスコードはちょうど400
です。
あなた美しい人をお読みください。それはまさにそれです!それは非常に意味をなさない。答えをありがとう! – JDGale8
@ JDGale8ようこそ! Swagger + Springで作業するときは、Springアノテーションだけを行い、エンドポイントを装飾または修正するためにSwaggerアノテーションを追加することをお勧めします。スワッガーはスプリングアノテーションからの動作を取得するのに非常に優れています。たとえば、Swaggerがそのエンドポイントの原因から '@ ApiParam'アノテーションをすべて削除することができます。 (そうでないと設定されていない限り) –