如何验证设置了@PathVariable



这是我的Get请求:

@GetMapping("/stats/{fromDate}/{toDate}")
public StatsSummary getStatsSummary(@PathVariable String fromDate, @PathVariable String toDate) {
logger.info("Calculating statistics between" + fromDate + ",to" + toDate);
return statsService.getStatsSummary(fromDate, toDate);
}

我尝试将注释@NotBlank添加为:

public StatsSummary getStatsSummary(@PathVariable String fromDate, @PathVariable @NotBlank String toDate) {

但是当我调用不包括CCD_ 4的CCD_

{
"timestamp": "2020-09-04T06:02:46.567+00:00",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/stats/2020-05-30/"
}

那么注释没有正确注册?

更新:

PathVariable似乎不需要验证:

验证器(@Validated@Valid(不适用于Spring和TomEE

在REST中,路径变量是资源URL的一部分。因此,如果缺少路径/URL的一部分,则资源是不同的。

这就是为什么404是正确的响应代码。

如果这两个变量可以为空,那么它们应该是@RequestParam。

实际上Spring通过发送404向客户端返回正确答案。当有人没有提供完整的URL时,404是要响应的状态。

验证这一点的正确方法是使用一些日期类,如dateLocalDatetring。您可能需要定义正确的日期格式,因此请查看以下链接以了解详细信息。https://www.baeldung.com/spring-date-parameters

将以下注释添加到为我工作的类中。(不是添加到方法中(

@Validated

相关内容

  • 没有找到相关文章

最新更新