Маршрутизация с действием после параметра id в Web API
В 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 GetEventsByDays(int idLocation, int days) {
// do stuff
}
// GET api/locations/123?state=md
public IEnumerable GetLocationsByState(string state) {
// do stuff
}
}
Здесь действительно два вопроса:
Имеет ли смысл иметьLocationsController
который возвращает события или должен быть совершенно отдельный контроллер для этого?Как бы маршрут вWebApiConfig
быть настроен на такие маршруты?