Как мне этого добиться?
Spring Web может автоматически конвертировать JSON в мои собственные объекты, чтобы мне не приходилось принимать строку и затем анализировать ее самостоятельно. Может ли Spring Web сделать то же самое для CSV? Или мне действительно нужно принять файл, а затем самостоятельно проанализировать его (вероятно, используя какую-то внешнюю библиотеку, например Apache Commons Csv)?
Код: Выделить всё
// what I want to work but what apparently doesn't
@PostMapping(path = "/batch", consumes = "text/csv")
public ResponseEntity postSocksBatch(List socksRequestDtos) {
socksRequestDtos.forEach(socksService::save);
return ResponseEntity.status(HttpStatus.CREATED).build();
}
Я получил 415 неподдерживаемый тип носителя
Код: Выделить всё
@PostMapping(path = "/batch", consumes = "text/csv")
public ResponseEntity postSocksBatch(@RequestBody Object file) {
Код: Выделить всё
curl --location 'http://localhost:8080/api/socks/batch' \
--header 'Content-Type: text/csv' \
--data-binary '@/C:/Users/nadch/OneDrive/Рабочий стол/socks.csv'


Попытка 2
500 Внутренняя ошибка сервера
Код: Выделить всё
@PostMapping(path = "/batch", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity postSocksBatch(@RequestBody MultipartFile file) {
Код: Выделить всё
curl --location 'http://localhost:8080/api/socks/batch' \
--header 'Content-Type: multipart/form-data' \
--data-binary '@/C:/Users/nadch/OneDrive/Рабочий стол/socks.csv'

Код: Выделить всё
org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
Подробнее здесь: https://stackoverflow.com/questions/793 ... controller