2017-05-03 41 views
2

中的可選和必填字段我使用SpringFox庫作爲我的spring引導應用程序的其餘文檔。當我點擊模型時,所有元素都作爲可選項返回。有沒有辦法將必需的元素顯示爲強制性的?是否需要添加任何其他配置?SpringFox Swagger - 模型

回答

3

是全部日e字段將是可選的。要根據需要標記字段,您可以使用以下注釋。

@ApiModelProperty(required = true) 

關於應該需要的字段的getter方法。 這不會顯示該字段爲「強制性」。但是可選標籤將在文檔中爲該字段刪除。

希望這會有所幫助。

+0

謝謝@Ganesh。 –

1

嘗試類似的代碼在揚鞭配置:

@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>

+0

Thanks @Hasson。在我傳遞java對象的選項中,如何使用此配置指定哪個字段是強制的/可選的? –

+0

不確定Swagger是否會走得那麼深,但是您可以使用'@NotEmpty'和'@NotNull'來嘗試傳遞對象中的字段。 – Hasson

+0

@PunterVicky正如@Ganesh的回答中指出的那樣。你可以用'@ApiModelProperty(required = true)'註釋你的模型'或者用'@NotNull'註解來註釋它。 –

相關問題