请求主体对象未得到验证

时间:2018-11-30 07:38:53

标签: spring mongodb spring-boot spring-data

我有一个REST API,它使用POST调用来创建记录,我期望某些对象在调用后传递,如果缺少任何内容,我必须直接拒绝它们,

 @RequestMapping(value="/saveEssentialDetails",produces={"application/json"},method=RequestMethod.POST)
ResponseEntity<?> saveEssentialDetails(@ApiParam(value="Body Parameters")@RequestBody @Validated EssentialDetails essentialDetails, BindingResult bindingResult)throws Exception;

Essential Model类如下

    @Data
@NoArgsConstructor
@Document(collection="essentialDetails")
public class EssentialDetails {

    @NotNull
    Integer dpId;
    @Id
    @NotEmpty
    String tpId;
    @NotEmpty
    List<FamousFor> famousFor;
    @NotEmpty
    List<OpenHours> openHours;
    @NotEmpty
    Pictures uploadedImages;
    @NotEmpty
    List<FloorDescription> floorDescriptions;
    @NotEmpty
    List<Outlets> mallOutlets;

}

但是在进行具有Missing属性的Post Call时,我可以在MongoDB中创建一个条目,我不想保留该条目,因为这不是一个适当的请求,@ Validation对我不起作用,我正在使用带有MongoDb 4.0.4的Spring Boot 2.0.6, 任何帮助将不胜感激。预先感谢

1 个答案:

答案 0 :(得分:0)

@Validated可用于使用自定义验证对象来验证对象。用法示例:

@RequestMapping(value = "/")
public String request(@Validated(Account.ValidationStepOne.class) Account account)

使用@Validated代替@Valid,它会检查您在实体中使用的验证注释。