Принять CSV DTO в контроллере Spring Web RESTJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Принять CSV DTO в контроллере Spring Web REST

Сообщение Anonymous »

Мне нужно создать конечную точку POST, которая принимает CSV-файл с DTO.
Как мне этого добиться?
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();
}
Попытка 1
Я получил 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
Если оставить поле Content-Type пустым, получится 415

Подробнее здесь: https://stackoverflow.com/questions/793 ... controller
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Принять CSV DTO в контроллере Spring Web REST
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Невозможно привести объект типа «System.Web.Mvc.MvcHandler» к типу «System.Web.UI.Page в контроллере mvc».
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • ASP.NET – Как принять объект JSON в контроллере
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Путаница и проблемы с исходным DTO и целевым DTO [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    75 Просмотры
    Последнее сообщение Anonymous
  • Может ли DTO расширить другой DTO?
    Anonymous » » в форуме JAVA
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»