このようなことはできますか?
[OperationContract]
[WebInvoke
(
Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "/abc{integerParam}"
)
]
ResultStruct abc( int integerParam, CustomClass secondParam );
ここでのアイデアは、URLで最初のパラメーター(整数)を渡すことができるということですが、secondParamはPOSTから取得されます。これも可能ですか?
私はWCF RESTから始めましたが、パラメーターの割り当て方法がわかりません。ポインターがあれば役に立ちます。ありがとうございます。
はい、できます。ここからは RESTful Webサービスの設計と構築のガイド
[ServiceContract]
public partial class BookmarkService
{
[WebInvoke(Method = "PUT", UriTemplate = "users/{username}")]
[OperationContract]
void PutUserAccount(string username, User user) {...}
[WebInvoke(Method = "DELETE", UriTemplate = "users/{username}")]
[OperationContract]
void DeleteUserAccount(string username) {...}
[WebInvoke(Method = "POST", UriTemplate = "users/{username}/bookmarks")]
[OperationContract]
void PostBookmark(string username, Bookmark newValue) {...}
[WebInvoke(Method = "PUT", UriTemplate = "users/{username}/bookmarks/{id")]
[OperationContract]
void PutBookmark(string username, string id, Bookmark bm) {...}
[WebInvoke(Method = "DELETE", UriTemplate = "users/{username}/bookmarks/{id}")]
[OperationContract]
void DeleteBookmark(string username, string id) {...}
...
}
私の場合、このようなRESTfulWebサービスの設計はひどいものです。このServiceContrcatは次のとおりです。
リモートインターフェイスは安定および柔軟である必要があると思います。 Webサービスを設計するためにメッセージベースのアプローチを使用します。
詳細な説明はここにあります: WCFを使用したRESTfulメッセージベースのWebサービスの構築 、コードサンプルはここにあります: Nelibur およびNelibur nugetパッケージ ここ