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

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

Любые предложения / лучшие практики?

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам