У меня есть проект WCF REST 4.0, основанный на шаблоне 40 службы сервиса REST WCF (CS). Я бы хотел показать простые URL-адреса конечных точек без привязки косых черт. Например:
- CarService.cs
- http://www.domain.com/cars - GET возвращает список всех автомобилей
- http://www.domain.com/cars/123 - GET возвращает один автомобиль с идентификатором 123
- TruckService.cs
- http://www.domain.com/trucks - GET возвращает список всех грузовиков
- http://www.domain.com/trucks/456 - GET возвращает один грузовик с идентификатором 456
Я просматриваю вышеуказанные URL-адреса как запросы ресурсов (не каталоги), поэтому я не думаю, что конечные косые черты здесь подходят.
К сожалению, я не могу получить поведение, которое я хочу, потому что меня всегда перенаправляют на/cars/and/trucks/с завершающей косой чертой.
Здесь, как я определил маршрут "машины" и метод обслуживания - обратите внимание, что я не включил ни одной косой черты в любом определении шаблона маршрута или URI:
// Global.asax.cs
RouteTable.Routes.Add(new ServiceRoute("cars", new WebServiceHostFactory(), typeof(CarService)));
// CarService.cs
[WebGet(UriTemplate = "")]
public List<Car> GetCollection()
{
return DataContext.GetAllCars();
}
Обратите внимание, что MVC не работает таким образом. С помощью метода MapRoute я могу направлять запросы непосредственно на http://www.domain.com/about без перенаправления на /about/. Как я могу получить такое же поведение в WCF REST 4.0?