public class Greeting {
private final long id;
@NotEmpty(groups = Existing.class)
private final String content;
public Greeting(long id, String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
public interface Existing {
}
}
注意PutMapping上的@Validated(Existing.class)注解
@PostMapping("/greeting")
public Greeting newGreeting( @RequestBody Greeting gobj) {
return new Greeting(counter.incrementAndGet(),
String.format(template, gobj.getContent()));
}
@PutMapping("/greeting")
public Greeting updateGreeting(@Validated(Existing.class) @RequestBody Greeting gobj) {
return new Greeting(gobj.getId(),
String.format(template, gobj.getContent()));
}
1条答案
按热度按时间vh0rcniy1#
您可以在JSR 303注解中使用groups参数。
@NotEmpty注解在通过“Existing”接口访问时适用:
注意PutMapping上的
@Validated(Existing.class)
注解对于上面的例子,Json主体
{"id": 1}
将适用于POST,但对于PUT,您将获得HTTP 400,告诉您“内容参数不得为空”。{"id": 1, "content":"World"}
将被两种方法接受。