1

サーバーに販売注文を保存するデータ中心のアプリケーションを設計しています。クライアントはいつでも、販売注文に関連する追加、変更、および削除を要求する購入者からの電話を受けるなどの理由で、販売注文を変更することを決定する可能性があります。したがって、サーバー上の各 Sale データベース テーブルには、販売アイテムが格納される SaleItems 詳細テーブルがあります。

現在、REST メソッドの GET、POST、PUT、および DELETE は、対応するオブジェクトが変更されたときにサーバー上で実行される SQL SELECT、INSERT、UPDATE、および DELETE ステートメントに大まかに対応するはずです。

REST を使用すると、注文が変更されたときに PUT を実行して販売アイテムを更新し、UPDATE ステートメントを呼び出す必要があります。ただし、PUT は次のことも行う必要があります。 1. 購入アイテムとして表示されているすべての古いアイテムを、そのアイテムの数量とアイテムの価格とともに削除し、次に 2. すべての新しいアイテムをその数量と価格とともに挿入します。したがって、PUT は実際には UPDATE、DELETE、および複数の INSERT に対応します (これを行うための別のより良い方法は考えられません)。それで、残りはこれで終わりです。

操作はアトミックで単一のトランザクション内で実行する必要があるため、SQL の UPDATE、DELETE、および INSERT を分離することはできません。

では、HTTP 操作が SQL 操作にきちんと対応していない場合、XML-RPC とは対照的に REST の全体的な目的は何ですか? REST を誤解していませんか?

ご意見ありがとうございます。

4

1 に答える 1

1

操作はアトミックで単一のトランザクション内で実行する必要があるため、SQL の UPDATE、DELETE、および INSERT を分離することはできません。

あなたは REST を誤解しています。REST は REpresentational State Transfer を意味します。REST では、注文明細行を削除するコマンドを送信して注文を変更することはできません。それは、非代表的な状態を送ることを意味します。

代わりに、行ったすべての変更を含む完全な注文を送信します。つまり、オーダーの状態の REpresentation を転送します。そのように変更を送信することはトランザクションです。

于 2013-06-02T16:58:11.607 に答える