![](/img/trans.png)
[英]How to pass object data type in form-data(Postman->post request url->body->form-data) in POSTMAN?
[英]Pass a list of enums in postman request body
这是我试图将枚举值传递给的 controller:
@AllowedRequestParams({"columns", "ids"})
@GetMapping("/v1/analysis/files")
public ResponseEntity<byte[]> downloadAnalysis(@Valid AnalysisColumnsSelector columnsSelector,
@Valid FileUploadSearchCriteria criteria,
@Valid AnalysisSortable sortable) {
return csv()
.asAttachment("data_analysis.csv")
.withBody(AnalysisDownloader.downloadAnalysis(columnsSelector, criteria, sortable));
}
这是 object,其中包含我要传递的枚举列表:
import static java.util.Arrays.asList;
import static org.apache.commons.collections4.CollectionUtils.isEmpty;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Setter;
@EqualsAndHashCode
@Setter
class AnalysisColumnsSelector {
private List<AnalysisColumnEnum> columns;
public List<AnalysisColumnEnum> getColumns() {
return isEmpty(columns) ? asList(AnalysisColumnEnum.values()) : columns;
}
public String[] getHeaders() {
return getColumns().stream()
.map(AnalysisColumnEnum::getHeader)
.toArray(String[]::new);
}
}
这是枚举:
import static java.util.Arrays.stream;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
enum AnalysisColumnEnum {
ANALYSIS_COLUMN("analysisId", "[![ANALYSIS][1]][1]"),
TITLE("title", "TITLE"),
DISCUSSED("discussed", "Discussed");
private final String code;
private final String header;
public static AnalysisColumnEnum decode(String code) {
return stream(values())
.filter(analysisColumn -> analysisColumn.code.equals(code))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Unknown column code."));
}
您的请求方法是 GET,但是您发送请求正文,它们不匹配。 我建议您将请求方法更改为 POST,并使用@RequestBody。 顺便说一句,你需要将三个对象封装成一个新的object。
@AllowedRequestParams({"columns", "ids"})
@PostMapping("/v1/analysis/files")
public ResponseEntity<byte[]> downloadAnalysis(@RequestBody XX xx) {
return csv()
.asAttachment("data_analysis.csv")
.withBody(AnalysisDownloader.downloadAnalysis(xx.getColumnsSelector(), xx.getCriteria(), xx.getSortable()));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.