ASP.NET Web API получает дочерний список (иерархические ресурсы)

У меня есть следующая схема отдыха, которую яЯ хотел бы реализовать с помощью ASP.NET Web Api: я

http://mydomain/api/students
http://mydomain/api/students/s123
http://mydomain/api/students/s123/classes
http://mydomain/api/students/s123/classes/c456

у нас есть первые две ссылки, работающие правильно, используя ApiController и следующие два метода:

public class StudentsController : ApiController {
  // GET api/students
  public IEnumerable GetStudents() {  
  }

  // GET api/students/5
  public IEnumerable GetStudent(string id) {  
  }
}

В этом же контроллере (или мне нужен другой контроллер с именем ClassesController?), Как мне реализовать последние две ссылки? Кроме того, что бы маршрутизация дляклассы часть выглядит (при необходимости)?

Вот'мой WebApiConfig (который яЯ хотел бы сохранить динамический, а не жестко кодировать маршрут к / классам, если это возможно:

config.Routes.MapHttpRoute(
  name: "DefaultApi",
  routeTemplate: "api/{controller}/{id}",
  defaults: new { id = RouteParameter.Optional }
);   

// EDIT - I'm getting 404's when trying to use this
context.Routes.MapHttpRoute(
  name: "JobsApi",
  routeTemplate: this.AreaName + "/Students/{id}/Classes/{classId}",
  defaults: new { classId = RouteParameter.Optional }
);   

РЕДАКТИРОВАТЬ Здесь 'Мой недавно созданный ClassesController: I '

public class ClassesController : ApiController {
  // GET api/classes
  public IEnumerable Get(string id) {    
      return null;
  }
}

я получаю 404 ошибки при попытке перейти по этому URL:

http://mydomain/api/students/s123/classes

Ответы на вопрос(2)

Ваш ответ на вопрос