我有以下控制器:
@RequiredArgsConstructor
@RestController
public class OwnerViewController implements ApiOwnerViewController {
private static final String TEXT_CSV = "text/csv";
private final PrivateOwnerFacade privateOwnerFacade;
@PostMapping("/boat/v1/private-owners/search")
public OwnerViewResponse searchOwners(@Valid @RequestBody SearchOwnersRequest request,
Pageable pageable) {
return privateOwnerFacade.findOwners(request, pageable);
}
@PostMapping(value = "/boat/v1/private-owners/search", produces = TEXT_CSV)
public ResponseEntity<Resource> exportToCsv(@Valid @RequestBody SearchOwnersRequest request, Pageable pageable)
throws IOException {
我有两种方法映射到相同的URL,并且两种方法都接受POST请求,但是生成不同的内容类型。第一个方法生成"application/json",而第二个方法生成"text/csv"。
当我尝试发出请求并设置头部 "Accept: text/csv" 时,服务器返回406。
我想知道在Spring中是否真的可以这样做?还是唯一的方法是更改第二个方法,使其接受 GET 请求?
谢谢
produces = APPLICATION_JSON
添加到第一个方法时会发生什么? - JB Nizet