Closed1

冪等性(べきとうせい)というフレーズのメモ

ハトすけハトすけ

よくAPIやバッチは冪等性で作れとか言われるけどよく意味がわからないので、調べてまとめてみた。備忘録。

冪等性とは「何度おなじ操作をしても結果が同じ」という意味らしい。

HTTPメソッド

HTTPメソッドのGET/PUT/DELETE/HEADは冪等であるべきとか聞く。

https://developer.mozilla.org/ja/docs/Glossary/Idempotent

上記リンク先によると別にレスポンスが変わってもいいらしい。確かにDELETEメソッドとか1回成功してしまえばリソースなくなるから、2回め以降はNOT FOUNDレスポンスになるしうなずける。HTTPメソッドにおける冪等とは、サーバーの状態(リソースの状態)が何度同じ要求をしても同じ状態になることを言うみたい。

べき等であるためには、サーバーにおける裏側の実際の状態だけが考慮されるので、返される状態コードはリクエストごとに異なる場合があります。 例えば、最初に DELETE メソッドが呼び出された場合は、おそらく 200 を返しますが、それ以降は 404 を返すでしょう。 RESTful な API の設計において、最後の入力操作を削除する機能を DELETE メソッドを使って実装すべきでないとされるのも、DELETE メソッドがべき等であることを示唆しています。

例えばPUTメソッドでリソースの状態を変更したとする。再び同じ内容のPUTメソッドを実行してもリソースの状態は同じままである。

逆にPOSTメソッドは同じメソッドを実行したら、実行した分だけリソースが増える。

このスクラップは2021/03/12にクローズされました