2017-05-03 42 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'注解来注释它。 –

相关问题