RESTful WCF Web服务的UriTemplate前缀

时间:2013-07-24 14:33:19

标签: c# .net wcf web-services rest

我在WCF服务主机中有各种接口(端点),每个接口都有完全不同的关注点。在经典的肥皂网络服务中,我能够定义基本主机地址(例如http://myhost.com/)并将每个接口映射到相对URI(IServiceContract - > service/,{{ 1}} - > IMaintenanceContract)所以我可以通过例如调用它们maintenance/

现在,我正在迈出RESTful WCF服务的第一步,使用JSON作为CRUD Web请求的消息格式,我唯一看到的解决操作的方法是使用http://myhost.com/service/mymethod中的UriTemplate字段}(或WebInvoke)属性。不幸的是,似乎我不能将它放在界面上,只是在操作合同方法上。

如何将每个界面映射到不同的亲戚WebGet

1 个答案:

答案 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);

    }
}