gpt4 book ai didi

java - 如何确定 ConstraintViolation 是来自 JSON 属性还是来自 URL 参数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:14 24 4
gpt4 key购买 nike

我有一个代码可以从用户那里获取数据并验证它是否有效。

验证是针对来自 URL 的数据和来自 JSON 的数据。

问题是,在 URL 的情况下,路径字段包含 arg0 并且它需要我从 中获取它消息:

@ValidId (message = "The field is invalid")
private Long field;

字段注释。

如果是 JSON,我可以简单地从 path.substring(path.lastIndexOf('.') + 1) 中获取字段。

protected String buildErrorMessage(ConstraintViolation<?> violation) {
String path = violation.getPropertyPath().toString();
String field = path.substring(path.lastIndexOf('.') + 1);
//field = `arg0` in case of url
//field = `field` in case of JSON
}

如果我面临 ConstraintViolation -我如何确定违规是来自 JSON 还是 GET


编辑

这是我调用 buildErrorMessage 的地方 -

public class ValidationExceptionMapper implements ExceptionMapper<ValidationException> {

@Override
public Response toResponse(ValidationException exception) {

if (exception instanceof ConstraintViolationException) {

final ConstraintViolationException constraint = (ConstraintViolationException) exception;

for (final ConstraintViolation<?> violation : constraint.getConstraintViolations()) {
String message = buildErrorMessage(violation); //HERE
}
}

最佳答案

以下是一些有助于实现 ExceptionMapper 的步骤检查是否ConstraintViolationURL 中发送的无效参数JSON 负载中发送的无效属性 相关:

请记住参数注释,例如 @QueryParam , @PathParam@MatrixParam可以放在方法参数、资源类字段或资源类bean属性中。


我建议您看看我对 ExceptionMapper 的实现对于 ConstraintViolationException可用 GitHub .

关于java - 如何确定 ConstraintViolation 是来自 JSON 属性还是来自 URL 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50232456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com