我使用SpringFox库来获取我的spring boot应用程序的休息文档。当我单击模型时,所有元素都将作为可选项返回。有没有办法将所需元素显示为必需元素?是否需要添加其他配置?
默认为是所有字段都是可选的。要根据需要标记字段,可以使用以下注释。
@ApiModelProperty(required = true)
关于应该需要的字段的getter方法。这不会将该字段显示为“强制”。但是文档中的此字段将删除可选标记。
希望这可以帮助。
在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-303