1

トランザクションを承認するために使用する予定の Web サービスがあります。

これはバッチ プロセスですが、PUT が最も適切な方法であると考えていますが、通常は個々のトランザクション用に予約する必要があると考えています。

このプロセスのために PUT を保持し、次のようなペイロードを渡す必要があります。

{
    "Transactions": [
        {
            "TxId": "gtx-32",
            "VendorUserId" "76",
            "Status": "A"
        },
        {
            "TxId": "gtx-76",
            "VendorUserId" "76",
            "Status": "D"
        }
    ]
}

上記は、TxId: gtx-32 をステータス A に、TxId: gtx-76 をステータス D に設定します。

次に、更新されたステータスでそれらのトランザクションの json オブジェクトを返信します。

いずれかのトランザクションが無効なステータスへの更新を要求していた場合、応答は単にトランザクションに対して「古い」ステータスになります (そこにエラー メッセージを含める必要がありますか?)。

ここで PUT を採用するのが適切な方法でない場合は、代替案の提案を歓迎します。

これは実際にはレコードの部分的な更新にすぎないため、真の PUT ではないことは承知していますが、これは間違いなく更新です...

4

1 に答える 1

4

このPUT動詞は、「この文書をここに置く」という意味です。重要なことに、PUTリクエストの URL は、ドキュメントを「保存」する場所になるように意図されています。つまりGET、URL の は、最後に置かれたドキュメントを返します。

あなたの場合、情報のバッチを特定の場所に「アップロード」していて、バッチをそれ自体のドキュメントと考えることができない限り、それPUTはおそらくあなたが意味するものではありません.

代わりに、リクエストに含まれるドキュメントを処理POSTするように既存のリソースに依頼するために使用される、より一般的な を使用する必要があります。応答は、処理アクションの結果を表します。

POSTおそらく、HTTP プロトコルで最も一般的な動詞です。"Process" は、必要に応じて何でも構いません。そのため、他の動詞が実行したいアクティビティを反映していない場合に選択するのが一般的に最適です。

于 2012-12-20T12:41:55.480 に答える