我需要知道是否有可能在REST URI中验证pathvariable值。
示例:http://loacalhost:8080/config/test/ {id} /计划
如果请求是http://loacalhost:8080/config/test//plan而没有id,我需要抛出异常,例如id必须。是否有可能做到这一点。解决方案是可观的
答案 0 :(得分:1)
默认情况下已经是必需的,并且如果缺少该异常,则会抛出一个异常。来自the documentation:
public abstract boolean required
path变量是否为 是必需的。
默认为true,如果发生则引发异常 传入请求中缺少路径变量。切换到 如果希望使用null或Java 8 java.util,则返回false。 例如在用于不同请求的ModelAttribute方法上。
强调地雷
答案 1 :(得分:0)
您可以使用Optional
:
@GetMapping("/config/test/{id}")
public ResponseEntity<?> doGet(@PathVariable("id") Optional<Integer> id) {
Integer idValue = id.orElseThrow(new IllegalArgumentException("Id is required"));
}
答案 2 :(得分:0)
您只需在端点方法中将参数标记为“ required”即可