Является ли добавление изображения в запрос GET плохим шаблоном дизайна? - PullRequest
0 голосов
/ 09 декабря 2018

Позвольте мне установить очень специфический вариант использования ...

Допустим, вы создаете API распознавания лиц с использованием Python.Когда вы загружаете изображение в API по неопределенному маршруту, вы получаете список идентификаторов, соответствующих этому изображению ... возвращаемый объект - это массив: ['tom', 'brad', 'john'].

Вы не загружаете никакихданные, которые будут созданы или сохранены на сервере.

Вы ничего не обновляете и не создаете.

Какой это должен быть запрос?Я бы принял запрос GET, потому что вы ПОЛУЧАЕТЕ личность людей в загруженном изображении, независимо от того, отправляете ли вы изображение для обработки.

1 Ответ

0 голосов
/ 09 декабря 2018

Я бы принял запрос GET, потому что вы ПОЛУЧАЕТЕ личность людей в загруженном изображении, независимо от того, отправляете ли вы изображение для обработки

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

Полезная нагрузка в сообщении запроса GET не имеет определенной семантики;отправка тела полезной нагрузки по запросу GET может привести к тому, что некоторые существующие реализации отклонят запрос.

У вас есть правильная идея - запрос должен быть safe , так что вы можетепосмотрите Реестр методов HTTP , чтобы увидеть, есть ли совпадение.Это может привести вас к ПОИСКУ или ОТЧЕТУ.Эти методы являются расширениями, определенными WebDAV, и могут подходить или не подходить для вашей проблемы.

Если допустимо включить представление изображения в строку запроса, вы можете связать его с GET.Я подозреваю, что у вас возникнут проблемы с компонентами, которые жалуются на слишком длинный идентификатор.

TL; DR?используйте метод POST для доставки изображения на сервер.

...