ASP.NET Web API を使用して、SOAP ベースの RPC スタイルの「Web サービス」を JSON ベースの REST Web サービスに変換しています。AddXYZ / UpdateXYZ / RemoveXYZ などのメソッドは、POST/PUT/DELETE の HTTP 動詞にきれいにマップされます。「ExecuteXYZ」や「AssignXYZ」スタイルのメソッドなどの典型的な RPC スタイルの操作を対応する REST にマッピングするためのベスト プラクティス/ガイダンスはありますか? 私の見解では、そのような操作は、「ExecuteXYZRequest」や「AssignXYZRequest」などの対応する URL アドレス指定可能なリソースにマップされると考えています。
http://myhost/myservice/ExecuteXYZRequest
http://myhost/myservice/AssignXYZRequest
「ExecuteXYZ」を実行する要求は、POST 操作に変換されます。
送信されたリクエストを取得すると、GET に変換されます (通常、送信されたリクエストのステータスを取得するために使用されます)。
http://myhost/myservice/ExecuteXYZRequest/1 <--- 1 is the ID of the request
リクエストをキャンセルすると (キャンセル可能であると仮定して)、DELETE に変換されます。
POST は実際には何にもマップされません。
上記は合理的な REST 実装のように聞こえますか、それともここでの私の考えは完全に間違っていますか? 思考/ガイダンスは大歓迎です。
更新 ここに私がモデル化しようとしている特定の例があります: Contact エンティティと Event エンティティの間の多対多の関係。イベントへの連絡先のメンバーシップをRESTリソースとしてモデル化して、連絡先をイベントに追加/削除できるようにする最良の方法は何でしょうか。RPC ランドでは、これは、両方のエンティティの ID を取得し、これら 2 つの関係を設定する「AssignContactToEvent」などのメソッドになります。これを REST でリソースとして自然にモデル化するにはどうすればよいでしょうか。リンクと「rel」の概念があることを思い出しますが、Web APIを使用してこのようなものをモデル化する方法を示す具体的な実用的な例を見つけることができません