WCF RESTサービステンプレート40(CS)に基づくWCFREST4.0プロジェクトがあります。末尾にスラッシュを付けずに、単純なサービスエンドポイントURLを公開したいと思います。例えば:
- CarService.cs
- http://www.domain.com/cars-GETはすべての車のリストを返します
- http://www.domain.com/cars/123-GETは、ID123の1台の車を返します
- TruckService.cs
- http://www.domain.com/trucks-GETはすべてのトラックのリストを返します
- http://www.domain.com/trucks/456-GETは、ID456のトラックを1台返します
私は上記のURLを(ディレクトリではなく)リソースリクエストと見なしているため、ここでは末尾のスラッシュは適切ではないと思います。
残念ながら、私は常に/cars/と/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メソッドを使用すると、/ about /にリダイレクトせずに、リクエストをhttp://www.domain.com/aboutに直接ルーティングできます。WCF REST 4.0で同じ動作を得るにはどうすればよいですか?