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
?
是的,您将把基本url放在[OperationContract]方法上。这是可以的,因为你可以指定任何你想要的基本url。下面是一个示例接口,用于提供此控件。
namespace MyHostApi
{
[ServiceContract]
public interface IMyHostApi
{
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "WhateverYouWant/HelloWorld/{name}")]
string HelloWorld(string format, string name);
}
}