Open3

POSTの冪等性に関する議論

habakanhabakan

RESTfulにおける冪等性として、複数回同一リクエストを送ったとしてもリソースの状態が変わらないことを指している。
その中で、POSTは冪等性がないメソッドとして考えられることが多い。
https://restfulapi.net/idempotent-rest-apis/
アプリケーションの開発として、リソースが重複作成は避けるような機能要件は多くある。
これに対して冪等性があるPOST処理をサーバーサイド側で実装するのか、それとも重複の確認などはクライアント側で制御するのかどのように対応するのが設計として望ましいのかが気になる。

habakanhabakan

サーバーサイドでの対応事例(POSTに冪等性をもたせる)

POSTのURIにリソースIDを加える

https://munchkins-diary.hatenablog.com/entry/2019/11/14/151109

/api/docs/${docType}/${docId}

条件として

  • IDが重複しない
  • 重複した場合のエラーハンドリングをすること

POSTで送られたボディを元にサーバーサイド側で制御

https://qiita.com/suin/items/316cb8aaf8dfcf11abae#冪等性のメリット