gpt4 book ai didi

java - 如何验证 REST 服务中的通用 bean?

转载 作者:行者123 更新时间:2023-12-01 17:59:12 34 4
gpt4 key购买 nike

在我当前的项目中,我经常使用批量请求。我有简单的BulkRequest<T>类:

import java.util.List;

import javax.validation.constraints.NotNull;

public class BulkRequest<T> {

@NotNull private List<T> requests;

public List<T> getRequests() { return this.requests; }

public void setRequests(List<T> requests) { this.requests = requests; }
}

与其他bean一起使用非常简单,例如:

@RequestMapping(value = "/departments/{departmentId}/patterns",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> post(
final @PathVariable long departmentId,
final @Valid @RequestBody BulkRequest<AddPatternRequest> bulkRequest
) {
...
}

AddPatternRequest包含自己的验证规则,仅代表一个请求,可以将其收集为批量请求:

import javax.validation.constraints.NotNull;

public class AddPatternRequest {

@NotNull private Long pattern;

public Long getPattern() { return this.pattern; }

public void setPattern(Long pattern) { this.pattern = pattern; }
}

但是有一个问题。 Controller 收到批量请求后,仅验证 BulkRequest并检查是否 requests Collection 是null或不,但我也需要验证嵌套请求。

我该怎么做?

最佳答案

将@Valid添加到请求中。像这样

@NotNull 
@Valid
private List<T> requests;

然后嵌套对象也会被验证

关于java - 如何验证 REST 服务中的通用 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42291024/

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