Обновление ресурсов, но идемпотентно, можно ли использовать httpGet или опубликовать - PullRequest
1 голос
/ 29 октября 2019

Я читал посты и проводил исследования по отдыху. Однако я не могу понять эту конкретную ситуацию. Я не знаю, должен ли я использовать Get или Post.

У меня есть сервисный вызов, который обновляет базу данных (разблокировка записи, изменение флага на false). Он изменяет данные в базе данных, однако независимо от того, сколько раз вы вызываете эту услугу, изменение произойдет только один раз, даже если вы трижды разблокируете запись, состояние все равно будет разблокировано, поэтому Idempotent.

Так что это значит, что я могу использовать Get для этого вместо post? но можно ли использовать Get, когда я обновляю данные в базе данных?

Сервисный вызов также принимает только один Id, я хочу добавить его в параметр запроса вместо тела, было бы странно использоватьсообщение без тела верно?

1 Ответ

0 голосов
/ 30 октября 2019

Все GET запросы должны быть безопасными . Это означает, что выполнение запроса GET не должно иметь последствий для состояния вашей базы данных.

Обычно при изменении ресурса используется PUT. POST тоже нормально. Неважно, что POST не гарантированно является идемпотентом. Если это происходит в некоторых случаях (например, у вас), это не нарушает спецификацию.

Однако, похоже, в вашем случае PUT более уместно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...