Создание лучшего API: загрузка N файлов и метаданных json - PullRequest
0 голосов
/ 12 сентября 2018

Я создаю API.

Я не уверен, как должен выглядеть API.

Несколько файлов BLOB (PDF, JPG, ZIP, ...) должны быть загружены, а некоторыеJSON, который содержит метаданные.

Какой самый современный способ разработки API?

Существует два случая:

  • загрузка былауспешный.Тогда я думаю, что 201 (создан) будет осуществим
  • загрузка не удалась (например, недействительные метаданные).Затем должно быть возвращено 422 (Unprocessable Entity).

Пример:

  • Должны быть загружены (одновременно) три pdf-файла, связанные с некоторыми метаданными json.

1 Ответ

0 голосов
/ 17 сентября 2018

Что вы часто видите, так это то, что у вас есть ресурс для обработки больших двоичных объектов и один для метаданных - Facebook и Twitter делают это для изображений и видео.

Например, /files будет принимать ваши данные BLOB и возвращать идентификатор для загруженных данных BLOB.

Метаданные будут отправлены на другой ресурс с именем /posts и могут потреблять application/json.

В приложении, в котором я сейчас работаю, возникла та же проблема, и мы решили использовать одну конечную точку, потребляющую multipart/form-data - здесь вы можете отправлять большие двоичные объекты и метаданные в разных границах и иметь все в одном ресурсе.

Другим способом было бы base64 кодировать большие двоичные объекты, что приведет к накладным расходам в 33%, и поэтому я не рекомендую его. Но с base64 вы можете выполнять всю свою работу в одном application/json ресурсе.

...