Global.asaxでルーティングを変更できます。デフォルトは次のように設定されています。
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
ただし、たとえばアクション名を使用するように変更できます。
routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
MVC WEb APIでのカスタムルーティングの詳細については、この記事を参照してください。
コメントに基づいて更新
上記は、「ルーティングを変更できますか?」という質問に対する回答です。簡単な答えは「はい」ですが、別の答えで指摘されているように、優れたRESTAPIを維持したくない場合があります。デフォルトのルーティングを備えたMVCWebAPIは、リソースで作業している基本的なRESTの概念を維持し、コントローラーがリソースを表します。あなたの他の質問では、あなたは例を挙げます:
DELETE /account/1234/note/321 <- delete note 321 on account 1234
アカウント1234のメモを削除する場所。この場合、作業中のリソースはメモです。これをより適切に表現するには、クエリ文字列を使用して、この例のAPIを次のようにします。
DELETE /note/321?account=1234 <- delete note 321 on account 1234
このように、ルーティングを混乱させる必要はなく、処理対象のリソースがフィルターが使用されているメモであることは明らかです。ただし、noteのIDが特定のアカウントだけでなくアプリケーション全体で一意である場合は、この明示的なフィルター(つまり、where句)を追加する必要があるかどうかも疑問に思います。