Web API では、デフォルト ルートは次のとおりです。
/api/locations/123?days=5
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
しかし、このようなルートで/api/locations/123/events?days=5
ヒットできるようにしながら、ルートをこのように見せたいとしたらどうでしょうか。LocationsController
/api/locations/123?state=md
コントローラ:
public class LocationsController : ApiController {
// GET api/locations/123/events?days=5
public IEnumerable<Event> GetEventsByDays(int idLocation, int days) {
// do stuff
}
// GET api/locations/123?state=md
public IEnumerable<Location> GetLocationsByState(string state) {
// do stuff
}
}
ここには実際に 2 つの質問があります。
LocationsController
イベントを返すを持つことは理にかなっていますか、それとも完全に別のコントローラーが必要ですか?- このようなルートを許可するには、ルートをどのよう
WebApiConfig
に設定しますか?