簡體   English   中英

如何在REST服務中驗證通用bean?

[英]How to validate generic bean in REST service?

在我當前的項目中,我經常使用批量請求。 我有簡單的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; }
}

但是有一個問題。 控制器收到批量請求后,它僅驗證BulkRequest並檢查requests集合是否為null ,但我也需要驗證嵌套請求。

我該怎么做?

將@Valid添加到請求中。 像這樣

@NotNull 
@Valid
private List<T> requests;

然后嵌套對象也被驗證

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM