Подтвердить что ты не робот

Что такое хороший способ передачи двоичных данных в службу HTTP REST API?

Мы расширяем наш API HTTP REST, чтобы позволить клиентам загружать изображения (для целей этого вопроса, предполагая двоичные данные). До сих пор мы разрешали просто строки в наших параметрах API. Каков хороший способ разрешить им загружать двоичные данные? Будет ли запрос на кодировку base64? Будет ли URL слишком длинным для веб-сервера?

Любые предложения/рекомендации?

4b9b3361

Ответ 1

Просто отправьте двоичные данные как есть в теле POST, но с соответствующим заголовком Content-Type (например, image/jpeg) - я думаю, что это самый "RESTful" способ.

(В общем, как правило, при проектировании служб REST, чем больше вы работаете с HTTP-протоколом as-is вместо того, чтобы пытаться наложить что-то ненужное и сложное поверх него, как base64, тем лучше. конечный протокол RESTful и Content-Types допускают разные "представления" в "Передача репрезентативного состояния" )

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

Вы можете разрешить оба варианта, конечно.