Что такое хороший способ передачи двоичных данных в службу HTTP REST API? - PullRequest
44 голосов
/ 02 октября 2009

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

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

1 Ответ

42 голосов
/ 02 октября 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...