Наилучшая практика для операций пакетного ОБНОВЛЕНИЯ

#rest #crud

#rest #crud

Вопрос:

Для моего приложения я хотел бы, чтобы мои конечные точки СОЗДАНИЯ и ОБНОВЛЕНИЯ поддерживали как одиночные, так и пакетные вставки / обновления.

Я знаю, что обычно стандартом для этих URI были бы /{resource} для POST и /{resource}/{id} для PUT.

Конечная точка POST будет отлично работать для пакетных операций. Это будет просто включать простую проверку, представлены ли полученные данные в формате массива или нет. Однако для PUT это не сработало бы, поскольку URI требует идентификатор для указанного ресурса.

Я мог бы изменить PUT URI на просто /{resource} , но является ли это плохой практикой? Не лучше ли вместо этого иметь отдельные конечные точки для одиночных и пакетных операций, как для СОЗДАНИЯ, так и для ОБНОВЛЕНИЯ?

Ответ №1:

CRUD является основой rest

  1. Создать — чтобы иметь совершенно новую структуру ресурсов (почти всегда пакетную) через POST / {resource} — только пакет без фильтров

  2. Извлечение — выбор созданного ресурса для каждого идентификатора / пакета может осуществляться как через GET / {resource}, так и через GET / {resource} / {id} необходимо иметь оба

  3. Обновление — обновление в основном по идентификаторам, которые фильтр ПОМЕЩАЕТ / {resource} / {id} может иметь в основном через фильтр

  4. Удалить — повторное удаление всего пакета / идентификаторы Удалить / {ресурс} или Удалить /{ресурс} / {идентификатор} Должны иметь оба

Итак, это похоже на where предложение в Rest's конце, за исключением create . Вам нужно иметь отдельные конечные точки для простоты использования, поскольку Rest API в основном обслуживают данные и не имеют структурных страниц ModelAndView. Следовательно, сохранение отдельной конечной точки для каждого является лучшей практикой