我正在开发.net 4.0 wcf restful服务项目。作为项目的一部分,我创建了两个服务1)OrderService 2)ProductService
此时我已在Global.asax中配置它们,如下所示:
RouteTable.Routes.Add(new ServiceRoute("products", new WebServiceHostFactory(),
typeof (ProductService)));
RouteTable.Routes.Add(new ServiceRoute("orders", new WebServiceHostFactory(),
typeof (OrderService)));
我可以使用以下网址访问这些服务:
http://localhost/orders/123
http://localhost/products/456
但我的要求是我必须能够使用以下格式的网址以特定顺序访问特定产品:
http://localhost/orders/{orderId}/products/{productId}
任何人都可以建议我应该使用哪种路由来使两种不同的服务协同工作。
更新:ProductService中有方法接受两个参数
orderId和
的productId
返回所需产品
答案 0 :(得分:0)
在您的OrderService
(和相关服务合同)公开操作中使用正确的UriTemplate
public class OrderService : IOrderService
{
[WebGet(UriTemplate = "{orderId}/products/{productId}")]
public Product GetOrderProduct(int orderId, int productId)
{
...
}
}
如果必须可以orders
路由到OrderService
,则无法在ProductService中使用。