Как правильно сопоставить маршруты WebAPI

Я создаю API для сайта, похожего на Twitter, используя Web API, и у меня проблемы с отображением маршрутов.

У меня есть следующие действия для контроллера пользователя:

public User Get(string firstname, string lastname)
public User Get(Guid id)
public User Friends(Guid id)
public User Followers(Guid id)
public User Favorites(Guid id)

Желаемые маршруты и сгенерированная документация должны быть:

api/users?firstname={firstname}&lastname={lastname}
api/users/{id}
api/users/{id}/friends
api/users/{id}/followers
api/users/{id}/favorites

В WebApiConfig.cs у меня есть:

config.Routes.MapHttpRoute(
    "2",
    "api/{controller}/{id}",
    new { action = "get", id = RouteParameter.Optional }
);


config.Routes.MapHttpRoute(
     "1",
     "api/{controller}/{id}/{action}"
);

Как правильно сопоставить маршруты WebAPI?

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

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