我有一个REST API,它使用POST调用来创建记录,我希望在调用后传递某些Object,如果缺少任何东西,我必须直接拒绝它们唯一的
@RequestMapping(value="/saveEssentialDetails",produces={"application/json"},method=RequestMethod.POST)
ResponseEntity<?> saveEssentialDetails(@ApiParam(value="Body Parameters")@RequestBody @Validated EssentialDetails essentialDetails, BindingResult bindingResult)throws Exception;
基本模型类如下
@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对我不起作用,我使用的是spring-boot 2.0.6和MongoDB 4.0.4,如有任何帮助,我们将不胜感激。提前感谢
@Validated
可用于使用自定义验证对象验证对象。示例用法:
@RequestMapping(value = "/")
public String request(@Validated(Account.ValidationStepOne.class) Account account)
不要使用@Validated
,而是使用@Valid
,它会检查您在实体中使用的验证注释。