は、私はこの方法でRESTfulなWCFサービスは、次のように宣言している:複数のパラメータを持つRESTful WCFサービスメソッドを呼び出すにはどうすればよいですか?
[OperationContract(Name = "IncrementAge")]
[WebInvoke(UriTemplate = "/", Method = "POST", ResponseFormat = WebMessageFormat.Json)]
Person IncrementAge(Person p);
ここでの実装です:
public Person IncrementAge(Person p)
{
p.age++;
return p;
}
だから、人の複雑な型を取るいずれかで年齢プロパティをインクリメントし、スピットJSONのシリアル化を使用して、それを戻します。私は、このようなサービスにPOSTメッセージを送信することでその事をテストできます:
POST http://localhost:3602/RestService.svc/ HTTP/1.1
Host: localhost:3602
User-Agent: Fiddler
Content-Type: application/json
Content-Length: 51
{"age":25,"firstName":"Hejhaj","surName":"Csuhaj"}
これは機能します。このような方法をしたいのですが?
Person IncrementAge(Person p, int amount);
したがって、複数のパラメータがあります。これを動作させるためにPOSTメッセージをどのように構築すればよいですか?これは可能ですか?
おかげ
POSTリクエストで*に作用した引数を渡すためにクエリパラメータを使用することは、私にとっては少し奇妙なようです。実際にリソースを変更*するのではなく、*選択*リソース(取得または更新)のためのクエリパラメータを予約します。 – kpozin
@kpozinなぜですか?その意図は不明ですか? –
問題は、IncrementAgeがPersonを返すため、GETと境界を接している(つまり、リソースの特定の表現を要求している)ということです。ただし、このメソッドはRPC呼び出しのほうが多く... – AshesToAshes