Функция / ресурс обработки RESTful: GET или POST? - PullRequest
5 голосов
/ 18 января 2012

Я создаю веб-сервис RESTful, и некоторые ресурсы являются функциями вычислений или обработки. Например, пользователь может масштабировать и преобразовывать изображения через API, отправляя изображение и получая обратно масштабированное или преобразованное изображение.

В соответствии с поваренной книгой *1003*, раздел 2.5, я должен использовать GET:

Treat the processing function as a resource, and use HTTP GET to fetch a
representation containing the output of the processing function. Use query
parameters to supply inputs to the processing function.

Это очевидно для случаев, когда входные данные просты (например, координаты точки / долготы точки). Однако следует ли мне следовать тому же совету для больших входов, таких как изображения? Насколько я знаю, невозможно отправить столько данных в качестве параметра запроса.

Ответы [ 4 ]

6 голосов
/ 18 января 2012

Используйте POST.Фактически вы выполняете загрузку и обработку изображений на сервере.Не могу придумать другой способ сделать это, если изображение уже не сохранено на сервере.

1 голос
/ 18 января 2012

Изображение является ресурсом. Используйте PUT, чтобы поместить ресурс на сервер, затем GET ресурс, предоставив параметры, указывающие желаемый размер.

0 голосов
/ 18 января 2012

Проверьте эту ссылку http://support.microsoft.com/default.aspx?scid=KB;en-us;q208427. Там написано, что максимальный URL для IE составляет 2083 символа

0 голосов
/ 18 января 2012

Из-за ограничений протокола HTTP я советую против этого. Это очень верный и очень полезный пример исключения, которое следует сделать из этого правила.

...