Как получить POST-изображение в веб-сервисе REST - PullRequest
1 голос
/ 03 апреля 2011

Каков общий подход к представлению веб-службы на основе REST, которая может принимать закодированное изображение base64.Я еще не уверен, будет ли изображение InputStream или ByteArray.Я использую RESTEasy.Могу ли я просто отобразить это как @FormParam (javax.ws.rs.FormParam)?Каков тип данных для входящего изображения?

1 Ответ

1 голос
/ 03 апреля 2011

Прежде всего, вы хотите получить изображение как InputStream, потому что оно может быть довольно большим. (У меня есть цифровая камера, которая выдает 12-мегапиксельное изображение. Это не последняя модель. Производимые ею изображения имеют размер несколько мегабайт, даже если они хранятся в формате JPEG. Вы не хотите, чтобы такие данные загромождали память больше, чем необходимо.)

Во-вторых, вы можете заставить свой веб-сервис принимать необработанные незакодированные данные в качестве загрузки. Это на самом деле проще, чем принимать данные в кодировке Base-64 (при условии, что вы извлекаете их как поток), и это хорошая экономия пропускной способности и обработки системы. Если вы хотите отправить другие данные одновременно, вам следует рассмотреть возможность работы с многокомпонентным контентом. (Увы, у меня нет опыта работы с этой частью; она мне не нужна для веб-сервисов RESTful, над которыми я работал.)

В-третьих, изображения следует описать как тип контента в пространстве image/*, но на практике дважды проверьте, действительно ли это то, что вы действительно получаете. При отправке их обратно клиентам вы должны отправить его обратно как один из набора image/*.

...