RESTful WCF web服务的UriTemplate前缀

本文关键字:UriTemplate 前缀 服务 WCF web RESTful | 更新日期: 2023-09-27 18:24:48

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

现在,我正朝着使用JSON作为CRUD web请求的消息格式的RESTful WCF服务迈出第一步,我看到的唯一能解决操作问题的方法是使用WebInvoke(或WebGet)属性中的UriTemplate字段。不幸的是,我似乎不能把它放在接口上,只能放在操作合同方法上。

如何将每个接口映射到不同的相对URI

RESTful WCF web服务的UriTemplate前缀

是的,您将把基本url放在[OperationContract]方法上。这是可以的,因为你可以指定任何你想要的基本url。下面是一个示例接口,用于提供此控件。

namespace MyHostApi
{
    [ServiceContract]
    public interface IMyHostApi
    {
        [OperationContract]
        [WebGet(BodyStyle = WebMessageBodyStyle.Bare,
                UriTemplate = "WhateverYouWant/HelloWorld/{name}")]
        string HelloWorld(string format, string name);
    }
}