Restful web服务路由

本文关键字:路由 服务 web Restful | 更新日期: 2023-09-27 18:07:04

我正在做一个。net 4.0 wcf restful service项目。作为项目的一部分,我创建了两个服务1)OrderService 2)ProductService

在这一刻,我已经配置他们在全局。

RouteTable.Routes.Add(new ServiceRoute("products", new WebServiceHostFactory(),
                                                   typeof (ProductService)));
RouteTable.Routes.Add(new ServiceRoute("orders", new WebServiceHostFactory(),
                                                   typeof (OrderService)));

我可以使用以下url访问服务:

    http://localhost/orders/123
    http://localhost/products/456

但是我的要求是我必须能够访问一个特定的产品在一个特定的顺序使用以下格式的url:

   http://localhost/orders/{orderId}/products/{productId}

谁能建议我应该使用什么路由来让两个不同的服务一起工作?

Update: ProductService中有一个接受两个参数的方法

  1. orderId和

  2. productId

    返回所需产品

Restful web服务路由

在您的OrderService(和相关的服务合同)中使用正确的UriTemplate公开操作

public class OrderService : IOrderService
{
    [WebGet(UriTemplate = "{orderId}/products/{productId}")]
    public Product GetOrderProduct(int orderId, int productId)
    {
        ...
    }
}

如果必须通过路由到OrderServiceorders访问,则不能在ProductService中。