我在WCF服务主机中有各种接口(端点),每个接口都有完全不同的关注点。在经典的肥皂网络服务中,我能够定义基本主机地址(例如http://myhost.com/
)并将每个接口映射到相对URI(IServiceContract
- > service/
,{{ 1}} - > IMaintenanceContract
)所以我可以通过例如调用它们maintenance/
。
现在,我正在迈出RESTful WCF服务的第一步,使用JSON作为CRUD Web请求的消息格式,我唯一看到的解决操作的方法是使用http://myhost.com/service/mymethod
中的UriTemplate
字段}(或WebInvoke
)属性。不幸的是,似乎我不能将它放在界面上,只是在操作合同方法上。
如何将每个界面映射到不同的亲戚WebGet
?
答案 0 :(得分:4)
是的,您将基本网址放在[OperationContract]方法上。这没关系,因为您可以指定所需的任何基本URL。这是一个示例界面,可以为您提供此控件。
namespace MyHostApi
{
[ServiceContract]
public interface IMyHostApi
{
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "WhateverYouWant/HelloWorld/{name}")]
string HelloWorld(string format, string name);
}
}