基本的に文字列であるxml形式でグループ情報を返すWCFRESTfulサービスを作成しました。この情報を取得するには、PersonIdやGroupIdなどの2つのパラメーターを渡す必要があります。どちらも文字列です。ここでは、人は複数のグループを持つことができます。ロジックは、PersonIdとGroupIdの両方を渡すと、そのグループの特定の情報のみが返されますが、GroupIdを渡さない場合、メソッドはその人のすべてのグループを返します。これまで、たとえばgetメソッドを使用してこのサービスを使用していました。
localhost/service/service.svc/getGroupInfo?PersonId=A100&GroupId=E100
or
localhost/service/service.svc/getGroupInfo?PersonId=A100&GroupId=
インターフェースは以下のようになります:
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
string getGroupInfo(string PersonId, string GroupId);
そしてそれは私が期待していた正確な結果を私に与えていました。UriTemplate
次に、RESTFullにして、に属性を追加しようとしましたwebInvoke
。例えば
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare,UriTemplate = "getGroupInfo/{PersonId}/{GroupId}")]
string getGroupInfo(string PersonId, string GroupId);
私のサービスをRESTfullのようにするには
localhost/service/service.svc/getGroupInfo/A100/E100
そして、それはうまく機能しています。しかし今、私の問題が始まりました。GroupIdを設定しないと、サービスが見つからないか、不正な要求エラーが発生します。オプションでgroupIdを設定したい。例えば
単一グループの場合
localhost/service/service.svc/getGroupInfo/A100/E100
そしてすべてのグループのために
localhost/service/service.svc/getGroupInfo/A100
出来ますか?
あなたの貴重な応答を待っています。
ありがとうございました..