ウェブサイトがアプリケーションフォームを送信するために使用するRESTfullシステムを設計しています。その後、内部ツールによってアプリケーションを承認または却下します。私は頭を悩ませてこれをどうやって構築するか、そして2つの選択肢があるかどうかについて議論してきました。 PUTまたはPOST。アプリケーションリソースを承認するときのPUTまたはPOSTへのRESTfullインターフェイスデザイン
PUTオプション
アプリケーションは、すべての状態コードによってフィルタリングすることができ、アプリケーションリソースの下にリストされているクエリパラメータ(異なるリソースを介して公開状態)を使用して(新しい、承認され、減少しました)。新規URLを作成し、IDとIDを割り当てるURLに新しいアプリケーションを投稿することができます。 IDを使用してGETを使用してアプリケーションにアクセスできます。承認するには、状態コードの1つをアプリケーションURLにプットしてレコードを更新します。
GET Service.svc/statecodes
GET POST Service.svc/Applications?statecode={statecode} /{POST DATA}
GET PUT Service.svc/Applications/{applicationId} statecode={statecode}
POST OPTION
用途すべてとアプリケーションリソースの下に表示され、新しいApplicatonsはそれらおよび譲受人とIDを作成し、このURLに掲載することができます。保留中、承認済み、拒否済みのアプリケーションのフィルタ表示を示すさまざまなURLがあります。アプリケーションを承認するには、承認されたURLにIDが投稿され、拒否されたURLにはURLが拒否されます。これらの最後の2つの投稿が効果を持つか、保留中のリストから承認済みのリストにアプリケーションを移動します。
PUTメソッドは私にとって最もRESTfulですが、動作を外部に公開し、カプセル化を中断します。 POSTメソッドはよりクリーンで発見可能なようですが、私はPOSTの別のリソース上のリソースへの副作用が気に入らない。
私は実際には、RESTが本当に何であるかという質問ではなく、コマンド/メッセージであるため、承認と拒否にSOAPを使用する必要があると感じていますが、誰かがSOAPの議論を形成するのを助けることができます。
これは正しいまたは最良のアプローチですか?
PUTアプローチが正しいアプローチであると言いますか? SOAPの質問にコメントはありませんか? –
@daffers:リソースを使用しない理由がないと言っています*リソースのURL(状態)がわかっており、操作の意味(リソースの作成/置換)が標準です。しかし、他のアプローチを好む理由がある可能性があります。たとえば、操作が冪等でない場合はPOSTを使用します。同じことがSOAPにも当てはまります。私は誓いの言葉を使わずにSOAPについて話すことはできませんが、より良い選択である状況があるかもしれません[各HTTP要求にすべての認証情報をエンコードできない場合](http://stackoverflow.com/a/3285790/4279)。 – jfs
ありがとう、upvote 1しかし答えとしてそれを取るつもりはない。おそらく黒か白の答えがない質問でしょう。 –