PUT vs POST в таблице аудита или истории изменений - PullRequest
0 голосов
/ 02 марта 2012

Допустим, у меня есть метод REST для обновления записи. Очевидно, это будет POST, потому что он обновляет ресурс. Однако в том же движении необходимо создать новую запись в таблице аудита или истории изменений.

Есть ли здесь стандарт или лучшая практика использования POST или PUT?

Происходит ли метод REST от того, что происходит на стороне пользователя, или от того, что происходит в базе данных?

Одна возможность - вызвать только один метод, который обновляет запись в одной таблице и создает новую запись в другой таблице.

Другой возможностью было бы принудительно установить, что POST обновляет только одну таблицу, и потребуется дополнительный метод для PUT в таблице аудита. Это заставляет использовать 2 метода и возлагает ответственность на разработчика, что мне не очень интересно.

1 Ответ

1 голос
/ 02 марта 2012

PUT фактически рекомендуется для замены (обновления) существующей записи.

Метод PUT запрашивает, чтобы вложенный объект был сохранен под предоставленным Request-URI. Если Request-URI ссылается на уже существующий ресурс, вложенный объект СЛЕДУЕТ рассматривать как модифицированную версию, находящуюся на исходном сервере.

Существует также некоторая информация о разнице между POST и PUT:

Принципиальное различие между запросами POST и PUT отражается в различном значении Request-URI. URI в запросе POST идентифицирует ресурс, который будет обрабатывать вложенный объект. Этот ресурс может быть процессом приема данных, шлюзом к другому протоколу или отдельным объектом, принимающим аннотации. Напротив, URI в запросе PUT идентифицирует объект, заключенный в запросе - пользовательский агент знает, для чего предназначен URI, и сервер НЕ ДОЛЖЕН пытаться применить запрос к какому-либо другому ресурсу.

См. здесь .

Мне кажется, вы должны использовать PUT запрос для обновления ресурса. Одитинг является побочным эффектом этого, и поэтому он должен обрабатываться как часть PUT ting нового ресурса.

...