REST の理論的な問題で立ち往生しています。
シンプルな商品在庫 API を想像してみてください。product
データベースには、 、 、quantity
および を参照するムーブメントのコレクションが 1 つ含まれていますstatus
。
前提条件が 1 つあります。それは、API ユーザーにステータスを操作させたくないということです。ステータス値はreserved
またはconfirmed
です。
まず、商品の予約を作成したいと思います。これを表す対応する URL パスと HTTP メソッドを次に示します。
[POST] /products/{product-id}/reservations
これにより、ステータス付きのムーブメントがreserved
作成され、作成されたムーブメントの ID が返されます。
ここで、この予約を確認します。
[POST] /reservations/{movement-id}/confirmations
意味的には、確認済みの予約を作成しているように思えます。実際には、ムーブメントのステータスを変更するだけです。
だから、2つの質問:
- 私の 2 番目の POST は冪等です。RFC で情報を見つけることができませんでしたが、POST は冪等にできますか?
- 確認を表すためのより良い方法が見つかりましたか?