С моей точки зрения, PUT может использоваться для вставки или изменения существующей записи.Вставка и идентификация HTTP PUT
PUT URL-адрес создает/заменяет ресурс целиком на указанном URL-адресе .
PUT: www.domain.com/accounts/1
{
Name: "Some Name"
}
После запроса будет создать учетную запись с ID 1, но в следующем запросе было бы просто обновить/заменить учетную запись с ID 1, что делает его идемпотентным.
Как это работает с столбцами идентификации в реляционных базах данных или с любой другой базой данных, которая поддерживает автогенерируемые идентификаторы?
Если у моих учетных записей есть автогенерированный столбец идентификации SQL, следует ли использовать свойство, отличное от первичного ключа, для идентификации этого ресурса в базе данных, или это прекрасно, чтобы вернуть ресурс, не найденный при ошибке по запросу для не существующего ресурса?
да, думал так. Таким образом, реализация PUT как строгое обновление в порядке, если я делаю это idempotent? – Robert
вы описали только сценарий создания, связанный с POST; в зависимости от потребностей для редактирования, вы также можете посмотреть в PATCH (vs PUT); но да, PUT должен быть идемпотентным –