Spring引导-正在验证请求主体json密钥



我正在Spring引导中验证请求主体。当post控制器使用下面的JSON在DB中创建记录时。它运行良好。

{
"test1": "string",
"test2": "string",
"test3": "string",  <--this has @Null in the entity
"test4": "string"
}

然而,当实体中的一个键为@NULL时,它仍然能够在DB中创建一条记录。我想知道是否有什么东西可以验证密钥并返回错误。

{
"test1": "string",
"test2": "string",
"test5": "string", <- wrong key by mistake
"test4": "string"
}

实体类

@Entity
@Table(name = "test")
@Data
@NoArgsConstructor
public class Test implements Serializable {
@Id
@Column(name = "test1")
private String test1;
@Column(name = "test2")
@NotNull
private String test2;
@Column(name = "test3")
private String test3;
@Column(name = "test4")
private String test4;
}

您可以使用Jackson解析JSON并处理未知属性。如果如所述发现未知属性,它将自动抛出UnrecognizedPropertyException

If u want to Validate request body in JSON u can use @Valid
@PostMapping("/books")
Book newBook(@Valid @RequestBody Test test) {
return repository.save(Test);
}
@Column(name = "test3")
@NotNull(message = "Please provide a test3")
private String test3;
if u want on key order
JsonPropertyOrder({ "test1", "test2", "test3", "test4" })
public class Test implements Serializable {
}

最新更新