我正在尝试对get请求的一个复杂参数应用输入验证。
data class FilterDTO (
@Valid
@NotNull
val id: Long? = null,
@NotNull
val code: String? = null
)
@Validated
@RestController
@RequestMapping("/foo")
class FooController {
@GetMapping
fun get(
@Valid filter: FilterDTO,
@Valid @NotNull @RequestParam("bar") bar: String?
) {
// ...
}
}
上述端点正确验证了bar
参数上的@NotNull
,但似乎忽略了复杂FilterDTO
对象上的验证。
我试过:
- 在
FilterDTO
的属性上添加@Valid
(即使使用Kotlin的@field:
和@get:
) - 在
FilterDTO
整个类上添加@Validated
(??)
无法让它工作。
是否可以验证复杂的get参数?
谢谢
1条答案
按热度按时间kupeojn61#
刚刚发现了问题。对于来到这里的任何人来说,我应该用
@field:
注解我想要的验证。所以简单地将我的DTO更改为以下内容就可以了: