Spring Bootアプリの残りのドキュメントにはSpringFoxライブラリを使用しました。 modelをクリックすると、すべての要素がオプションとして返されます。必須要素を必須として表示する方法はありますか?追加する必要がある追加の構成はありますか?
デフォルトではいすべてのフィールドはオプションになります。フィールドを必須としてマークするには、次の注釈を使用できます。
@ApiModelProperty(required = true)
必要なフィールドのゲッターメソッド。これはフィールドを「必須」として表示しません。ただし、ドキュメントでは、このフィールドのオプションタグは削除されます。
お役に立てれば。
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»"
_を参照している_JSONResult<String>
_を参照してください。
Bean検証アノテーションのサポート、特にSpringfox v2.3.2の@ NotNull、@ Min、@ Max、および@Sizeのサポートが追加されました。
これらのアノテーションは、任意のAPIモデルに配置できます。
これを使用するには、springfox-bean-validators依存関係を追加します。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
</dependency>
アプリケーションの構成クラスに追加します。
@Import({springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration.class})
参照: https://springfox.github.io/springfox/docs/current/#springfox-support-for-jsr-3
私は同じ問題を抱えていましたが、@ etechのヒントを使用すると、必須フィールドがswaggerでマークされているのを確認できました。私が行ったのは、springfox-swagger.versionを2.9.2(2.4.0から)にアップグレードし、guava.versionを20.0(15から)にアップグレードし、さらにアプリケーション構成クラスでインポートしただけです。ありがとうございました。