Restful веб-сервис маршрутизации - PullRequest
1 голос
/ 31 августа 2011

Я работаю над проектом службы отдыха .net 4.0 wcf. В рамках проекта я создал две службы 1) Сервис заказа 2) Сервис продукта

На данный момент я настроил их в Global.asax следующим образом:

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}

Может ли кто-нибудь предложить, какую маршрутизацию я должен использовать для совместной работы двух разных служб?

Обновление : в ProductService есть метод, который принимает два параметра

  1. код заказа и

  2. PRODUCTID

    чтобы вернуть желаемый товар

1 Ответ

0 голосов
/ 31 августа 2011

В вашем OrderService (и соответствующем договоре на обслуживание) выставьте операцию с правильным UriTemplate

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

}

Он не может быть в ProductService, если он должен быть доступен через orders, перенаправленный на OrderService.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...