首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring boot2路径变量验证

Spring boot2路径变量验证
EN

Stack Overflow用户
提问于 2021-06-06 20:42:39
回答 1查看 23关注 0票数 0

我正在使用spring boot来创建rest服务。我需要验证传递的参数。我有一个类似下面的服务,

代码语言:javascript
复制
@GetMapping(value="/employee/{Id}")
public EmployeeDTO getEmployeeDetails(@PathVariable String Id) {
    ...
}

我需要抛出错误,如果Id没有在url中传递。比如“请求中缺少Id”。我可以使用下面的代码来实现,

代码语言:javascript
复制
@GetMapping(value={"/employee", "/employee/{Id}"})
public EmployeeDTO getEmployeeDetails(@PathVariable String Id) {
    ...
}

并在带有@ControllerAdvise注解的ExceptionHandler中处理MissingPathVariableException。

但我想知道这是检查的正确方式吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-06 22:45:45

您可以使用@ControllerAdvise处理在执行实际代码时生成的异常。

对于Path变量验证,您可以使用spring-boot-starter-validation

添加这个maven依赖项:

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

然后你的控制器看起来会像这样:

代码语言:javascript
复制
@GetMapping(value={"/employee", "/employee/{Id}"})
public EmployeeDTO getEmployeeDetails(
    @NotBlank(message = "Missing Id in request")
    @PathVariable String Id) {
    ...
}

我建议你阅读这篇文章:Validating Form Input

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67859255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档