Idempotency in RESTful API
https://stackoverflow.com/questions/4088350/is-rest-delete-really-idempotent
同じリクエストを何度繰り返しても、同じリソース状態になること
得られる結果というのはリソース状態であって、レスポンスではない
利用者側が気にすべき前提・事前条件が減る、つまり使いやすいエンドポイントになる
POST, PATCHは冪等ではないとRFC7231で定められている
https://tools.ietf.org/html/rfc7231
下の表は、一般的に使用される HTTP メソッドとその安全性、および idempotency を示す
code:table
Idempotence in HTTP
+-------------------+--------------+-------------------+
| Http Method | Safety | Idempotency |
+-------------------+--------------+-------------------+
| GET | Yes | Yes |
| PUT | No | Yes |
| POST | No | No |
| DELETE | No | Yes |
| PATCH | No | No |
+-------------------+--------------+-------------------+
https://developer.mozilla.org/en-US/docs/Glossary/Idempotent
マイクロサービスや決済システムの文脈で頻出する
参考
決済システムのマイクロサービス化に伴うデータ移行について
メルペイにおけるお客さま残高の管理手法
アプリケーションにおけるデータ不整合との戦い
POSTリクエストを冪等処理可能にするIdempotency-Keyヘッダの提案仕様