Каков соответствующий ответ и код состояния HTTP, если при загрузке нескольких файлов происходит сбой проверки одного файла - PullRequest
0 голосов
/ 11 июля 2019

Есть конечная точка, которая выполняет загрузку файлов до 5 CSV-файлов.Запрос не выполняется, когда пользователь попадает в конечную точку без отправки какого-либо файла.Пользователь может отправить только один файл или несколько файлов, но не более пяти.Какой надлежащий ответ должен дать сервер для ситуации, когда пользователь загружает три файла, где два являются CSV-файлами, а один - TXT-файлом?Будет ли сервер возвращать код состояния 200 или 400 и сообщение с указанием файлов, которые были успешно загружены и которые не были успешными.Или было бы более целесообразно вернуть код состояния 400 и отклонить все загруженные файлы, поскольку хотя бы один файл был в неправильном формате?

Я рассмотрел вопрос о возврате кода состояния 200 и сообщения об успешной загрузке файлов с указанием причины, по которой другие файлы не были загружены.Я также возвращаю код состояния 400, если ни один из загруженных файлов не в правильном формате.Как вы думаете, ребята?

1 Ответ

1 голос
/ 11 июля 2019

Ответ МОЖЕТ использоваться в случае успеха, частичный успех , а также в ситуациях отказа.

Это зависит от варианта использования и UX, который вы хотели бы предоставить.

Будет ли сервер возвращать код состояния 200 или 400 и сообщение с указанием файлов, которые были успешно загружены и которые не были успешными ...

Рассмотрите возможность использования HTTP-кода MULTI-STATUS 207.

Вот что httpstatuses.com говорит об этом:

Ответ о нескольких состояниях передает информацию о нескольких ресурсах в ситуациях, когда может потребоваться несколько кодов состояния.

Если вы идете по этому пути, то вполне нормально вернуть 207 ответ и список деталей внутри тела ответа.

Этот подход немного сложнее, чем альтернатива ниже, но я считаю, что он обеспечит лучший UX для пользователей, которые загружают файлы через HTML-формы.

... было бы более целесообразно вернуть код состояния 400 и отклонить все загруженные файлы, поскольку хотя бы один файл был не в правильном формате?

Это проще для реализации. Такой подход может быть предпочтительным, когда это автоматизированная система, которая будет отправлять файлы на ваш веб-сервер.

...