問題タブ [idempotent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ansible - ansible プレイブックの冪等性
Ansible Playbook を使用してサーバーを構成しています。私のプレイブックは最初の実行では正しく動作しますが、同じプレイブックを再度実行すると、サーバーの構成ファイルに重複した行が作成されます。lineinfile
モジュールを使用しています。次のタスクの例では、プレイブックを実行するたびに行を追加します。
これを回避し、べき等性を維持する方法はありますか。
scripting - SSMS 2012 - If Not Exists を使用したデータのみのスクリプト生成
スクリプトをべき等にする if not exists ステートメントを含む SSMS 2012 内でデータのみの挿入スクリプトを生成したいと思います。
スクリプトを生成するデータベースを右クリックし、[タスク] -> [スクリプトの生成] を選択します。このウィザードの高度なスクリプト オプションは次のように設定されています。
このウィザードが SQL を生成するとき、IF NOT EXISTS チェックはありません。
スクリプト オプションに何か欠けているのでしょうか、それとも不可能なのでしょうか?
rest - HTTP PATCH は冪等か非冪等か?
HTTP パッチが非べき等であるという多くの場所を読みました。冪等ではない理由を誰かが説明してくれますか? 定義によると、冪等メソッドはリソースの状態を変更する場合と変更しない場合がありますが、最初のリクエストの後にリクエストを繰り返しても、それ以上の副作用はありません。PATCH リクエストを繰り返すと、リソースの状態がどのように変化しますか?
web-services - べき等 WebAPI
ゲームのシナリオで
プレイヤーがチェストを開くと、アイテムを受け取ります。アイテムは戦利品テーブルに基づいてランダムに生成され、各アイテムがドロップされる確率は設定可能です。
主な要件は、Web サービスがべき等であり、ルート テーブルが実行時に構成可能であることです。
このサービスはどのように実装できますか?
私のアプローチは、各アイテムの確率を含む戦利品テーブルをクエリ文字列に挿入することでした。また、プレイヤー ID とチェスト ID をシードとして使用して、ランダムなアイテムを生成することもできます。
例えば:
http://[URL]/api/OpenChest?loottable=ソード:10|シールド:10|ヘルスポーション:30&playerId=1&chestId=1
この方法では、呼び出しに副作用がなく、Web サーバーは応答をキャッシュできます。これは、特定のチェストからそのプレーヤーに同じアイテムが常に返されるためです。
これは正しいです?このサービスはべき等ですか?これを実装する他の方法はありますか?
rest - REST API 設計 - PUT 要求のリソース関係と冪等性: 完全なリソース表現とは正確には何を意味するのでしょうか?
部分的な更新の場合、べき等ではないアクションを実行する必要があることを理解しています。そのための有効な方法は、そのリソースに対して POST 要求を行うことです。
関連リソースについて質問があります。たとえば、次のリソースとそのプロパティを想像してください。
アカウント
ID
名前
アカウント番号
ユーザー (コレクション)ユーザー
ID
名
ここで、たとえば、アカウントの名前を変更するなど、アカウントを部分的に更新したいとします。
有効な部分更新として、次のリクエストを行うことができます。
私の質問は、べき等である必要があり、リソースの完全な表現を含める必要がある完全な PUT リクエストに関するものです。
有効な冪等リクエストとして次のことを行うことはできますか?
それは有効な冪等のアクションと見なされますか? USERS
トップレベルの「アカウント」情報をすべて含めましたが、アカウントに属するすべての情報も投稿していないため、疑問があります.
有効な冪等リクエストにするためには、そのサブリソースもすべて PUT リクエストに含める必要がありますか?
web-services - POST リクエストの重複による副作用の処理
会議室の予約を作成および更新する Web サービスがあるとします。更新により、時間や部屋番号など、予約のさまざまな側面が変更される可能性があります。
サービスへのユーザーのネットワーク接続が信頼できない可能性があり (モバイル ネットワークなど)、2 人のユーザー A と B が同じ予約を順番に更新しようとしているとします。
ユーザー A が会議時間を午後 2 時に変更する POST 要求を送信すると、要求がサーバーに到達し、サーバーが要求を正常に処理しました。ただし、ネットワーク接続が原因でユーザー A への応答が失われ、ユーザー A は要求が失敗したと考えます。
ユーザー A が再試行する前に、ユーザー B が会議時間を午後 2 時 30 分に変更する要求を送信すると、要求は成功し、ユーザー B に正常に応答します。
ここで、ユーザー A が (おそらく自動的に) 同じ要求を再試行すると、今度は要求と応答の両方が問題なく成功します。つまり、会議の時間が午後 2 時に変更されます。
上記の架空のシナリオでは、ユーザー A の重複した要求によってユーザー B の要求が上書きされ、サーバー側で不適切な状態が発生します。
考えられる単純な解決策の 1 つは、クライアントのすべての要求ごとに ID を設定することです。この ID は、要求が単に再試行/再送信されても変更されません。次に、サーバー側で、サーバーは受信したリクエスト ID のコレクションを維持し、重複をチェックします。
この問題を解決するためのより良い技術または方法は何ですか?