#api #rest #post #get #put
#API #rest #Публикация #получить #поместить
Вопрос:
Учитывая необработанный набор данных и некоторые операции, допустимо ли применять эти операции к необработанным данным и возвращать результаты клиенту в GET
запросе? Необработанные данные и операции сохраняются / создаются с помощью POST
запроса, и они обновляются с помощью PUT
запроса. В этом GET
запросе сохраненные ресурсы (необработанные данные в операциях) не изменяются, но он создает некоторые новые данные с использованием сохраненных данных и отправляет их клиенту.
Комментарии:
1. REST — это представление ресурса. Изображение — это просто необработанные данные с применяемыми правилами, например, /api/image/123/square может представлять необработанные данные изображения в квадратном формате. Если новые данные не сохранены, то это не новый ресурс
2. Если я хочу создать REST API для обеспечения возможности обработки изображений (при условии, что у нас уже есть конечные точки для обработки исходных изображений), как я могу создать конечную точку, которая применяет назначенный фильтр к исходному изображению? Должен ли я пойти и создать что-то вроде GET /api/factory/filter?img_id=amp;filter_id= ? Поскольку эта конечная точка не изменяет какой-либо сохраненный ресурс (поскольку он применяет фильтр к исходному изображению и отправляет вывод в качестве ответа пользователю), можем ли мы по-прежнему называть это REST API?
3. вы фильтруете ресурс (изображение), чтобы вы могли использовать /api/image/{image_id}/filter/{filter_id} . /api/factory/filter больше похож на rpc, чем на rest
Ответ №1:
Запрос GET должен быть идемпотентным и не должен изменять какой-либо сохраненный ресурс в базе данных. Ваше требование удовлетворяет вышеуказанному, поскольку вы просто возвращаете результаты.