Вы можете попробовать что-то вроде этого, ниже
// Register the static hello route
config.Routes.MapHttpRoute(
name: "HelloRoute",
routeTemplate: "api/hello",
defaults: new { controller = "MyTest", action = "Hello" }
);
// If it does not match, then fallback to the generic matcher
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Взгляните на руководство по маршрутизации Microsoft для веб-API , чтобы увидеть, как происходит сопоставление и какие параметры по умолчанию у вас есть.
Имейте в виду, что вы мудро выбираете причину, по которой хотите что-то подобное. В случае остальных API мы хотим иметь такие маршруты, как имя хоста / ресурса / id / подресурса / id
Вы можете прочитать об остальных API (которые основаны на ресурсах) здесь