2017-05-03 13 views
2

私はスプリングブートアプリケーションのドキュメントを作成するためにSpringFoxライブラリを使用しました。モデルをクリックすると、すべての要素がオプションとして返されます。必要な要素を必須として表示する方法はありますか?追加する必要がある追加設定はありますか?SpringFox Swagger - モデル内のオプションフィールドと必須フィールド

答えて

3

はいを​​参照しているすなわち"JSONResult«string»"、ジェネリック型を持つクラスを参照する方法をどのように設定コードに表示フィールドはオプションです。必要に応じてフィールドにマークを付けるには、次のアノテーションを使用します。

@ApiModelProperty(required = true) 

必要なフィールドのゲッターメソッドについて。 これは、フィールドを「必須」として表示しません。しかし、オプションのタグはドキュメントのこのフィールドでは削除されます。

これが役に立ちます。

+0

ありがとう@Ganesh。 –

1

SWAGGERの構成で同様のコードを試してみてください:あなたがリクエストボディでオブジェクトを渡す場合、あなたはパラメータを渡す場合

@Bean 
public Docket api() { 

    List<ResponseMessage> list = new java.util.ArrayList<>(); 
    list.add(new ResponseMessageBuilder().code(500).message("500 message") 
      .responseModel(new ModelRef("JSONResult«string»")).build()); 
    list.add(new ResponseMessageBuilder().code(401).message("Unauthorized") 
      .responseModel(new ModelRef("JSONResult«string»")).build()); 

    return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any()) 
      .paths(PathSelectors.any()).build().securitySchemes(Collections.singletonList(securitySchema())) 
      .securityContexts(Collections.singletonList(securityContext())).pathMapping("/") 
      .directModelSubstitute(LocalDate.class, String.class).genericModelSubstitutes(ResponseEntity.class) 
      .alternateTypeRules(newRule(
        typeResolver.resolve(DeferredResult.class, 
        typeResolver.resolve(ResponseEntity.class, WildcardType.class)), 
        typeResolver.resolve(WildcardType.class))) 
      .useDefaultResponseMessages(false).apiInfo(apiInfo()).globalResponseMessage(RequestMethod.GET, list) 
      .globalResponseMessage(RequestMethod.POST, list); 
} 

とコントローラのマッピングでは、例えば@RequestBody @Valid MyRequestClass reqを追加@RequestParam(value = "email", required = true, defaultValue = "") String email

のようなものを追加また

、すべての目がデフォルトでJSONResult<String>

+0

ありがとう@Hasson。私がJavaオブジェクトを渡すオプションでは、この設定を使用して必須/オプションのフィールドをどのように指定できますか? –

+0

Swaggerがそれほど深く進むのかどうかはわかりませんが、渡すオブジェクトのフィールドには '@ NotEmpty'と '@NotNull'を試してみてください。 – Hasson

+0

@PunterVicky @ Ganeshの答えで指摘されている通り。 @ApiModelProperty(required = true) 'でモデルに注釈を付けることも、' @ NotNull' javaxアノテーションで注釈を付けることもできます。 –

関連する問題