Для моего приложения я хотел бы, чтобы мои конечные точки CREATE и UPDATE поддерживали как одиночные, так и пакетные вставки/обновления.
Я знаю, что обычно стандартом для этих URI будет /{resource} для POST и /{resource}/{id} для PUT.
Конечная точка POST отлично подойдет для пакетных операций. Это будет просто включать простую проверку, являются ли полученные данные в формате массива или нет. Однако для PUT это не сработает, поскольку для URI требуется идентификатор указанного ресурса.
Я мог бы изменить PUT URI на просто /{resource}, но разве это плохая практика? Не лучше ли вместо этого иметь отдельные конечные точки для одиночных и пакетных операций, как для CREATE, так и для UPDATE?





CRUD — основа отдыха
Создать - чтобы иметь совершенно новую структуру ресурсов (почти всегда партия) через POST/{resource} -- только пакет без фильтров
Получить - выбор созданного ресурса для каждого идентификатора/пакета может осуществляться как с помощью GET/{ресурс} или GET/{ресурс}/{id} нужно иметь оба
Обновление - обновление в основном по фильтру идентификаторов PUT/{resource}/{id} может иметь в основном фильтр
Удалить - повторное удаление всей партии/идентификаторов Удалить/{ресурс} или Удалить/{ресурс}/{id} Нужно иметь оба
Итак, это похоже на предложение where в конце Rest's, за исключением создания. Вам нужно иметь отдельные конечные точки для простоты использования, так как Rest Apis в основном обслуживает данные, а не структурные страницы ModelAndView. Следовательно, сохранение отдельной конечной точки для каждого является лучшей практикой.