У меня есть проект WCF REST 4.0, основанный на шаблоне службы WCF REST 40 (CS). Я хотел бы предоставить простые URL-адреса конечных точек служб без завершающих косых черт. Например:
- CarService.cs
- http://www.domain.com/cars - GET returns a list of all cars
- http://www.domain.com/cars/123 - GET возвращает одну машину с ID 123.
- TruckService.cs
- http://www.domain.com/trucks - GET returns a list of all trucks
- http://www.domain.com/trucks/456 - GET возвращает один грузовик с ID 456
Я смотрю на приведенные выше URL-адреса как на запросы ресурсов (а не на каталоги), поэтому я не думаю, что здесь уместны завершающие косые черты.
К сожалению, я не могу добиться желаемого поведения, потому что меня всегда перенаправляют на / cars / и / trucks / с косой чертой в конце.
Вот как я определил маршрут и метод обслуживания "cars" - обратите внимание, что я не включил косую черту ни в одно из определений шаблона маршрута или 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?