Вам нужны уникальные URI. Вы можете изменить свой маршрут, чтобы получить это:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Теперь вы можете получить доступ к своему API следующим образом:
http://localhost/api/product/GetProductById/1
http://localhost/api/product/GetProduct/1
Я написал небольшое введение в ASP.NET Web API , которое показывает некоторые отличия от WCF Web API.
Вы также можете добавить действие по умолчанию, например, один список всех продуктов, так что вы можете сделать что-то вроде этого:
http://localhost/api/product/ // returns the list without specifying the method
, а другой вызывается таким образом
http://localhost/api/product/byid/1 // returns the list without specifying the method
Что я делаю, так это наличие ProductsController и ProductController.
ProductsController отвечает за операции с коллекциями T (получить все), а ProductController отвечает за операции с T (например, получение определенной).