#rest #crud
#rest #crud
Вопрос:
Для моего приложения я хотел бы, чтобы мои конечные точки СОЗДАНИЯ и ОБНОВЛЕНИЯ поддерживали как одиночные, так и пакетные вставки / обновления.
Я знаю, что обычно стандартом для этих URI были бы /{resource}
для POST и /{resource}/{id}
для PUT.
Конечная точка POST будет отлично работать для пакетных операций. Это будет просто включать простую проверку, представлены ли полученные данные в формате массива или нет. Однако для PUT это не сработало бы, поскольку URI требует идентификатор для указанного ресурса.
Я мог бы изменить PUT URI на просто /{resource}
, но является ли это плохой практикой? Не лучше ли вместо этого иметь отдельные конечные точки для одиночных и пакетных операций, как для СОЗДАНИЯ, так и для ОБНОВЛЕНИЯ?
Ответ №1:
CRUD является основой rest
-
Создать — чтобы иметь совершенно новую структуру ресурсов (почти всегда пакетную) через POST / {resource} — только пакет без фильтров
-
Извлечение — выбор созданного ресурса для каждого идентификатора / пакета может осуществляться как через GET / {resource}, так и через GET / {resource} / {id} необходимо иметь оба
-
Обновление — обновление в основном по идентификаторам, которые фильтр ПОМЕЩАЕТ / {resource} / {id} может иметь в основном через фильтр
-
Удалить — повторное удаление всего пакета / идентификаторы Удалить / {ресурс} или Удалить /{ресурс} / {идентификатор} Должны иметь оба
Итак, это похоже на where
предложение в Rest's
конце, за исключением create . Вам нужно иметь отдельные конечные точки для простоты использования, поскольку Rest API в основном обслуживают данные и не имеют структурных страниц ModelAndView. Следовательно, сохранение отдельной конечной точки для каждого является лучшей практикой