ASP.NET MVC (および一般的な MVC) の標準テンプレートは{controller}/{action}/{id}のようですが、現在取り組んでいるプロジェクトでは、それが適切かどうかわかりません構造。たとえば、車を制御するアプリケーションがある場合、以下の構造を持つ方が理にかなっています。
{car-rego}/{controller}/{action}/{data etc}
車 (ナンバー プレートで識別) は操作を実行するリソースであり、機能の論理的な分離はコントローラーとアクションに分かれているため、これは私には理にかなっています。これにより、次のような URL が生成されます。
/ESX-121/Power/On
/ESX-121/Speed/Set/100
/ESX-121/Speed/Current -- get the current speed (could be /ESX-121/Speed also)
/ESX-121/Turn/Left
/ESX-121/Speed/Set/90
/ESX-121/Power/Off
これがデフォルトのパターンに従った場合、次のようになります。
/Power/On/ESX-121
/Speed/Set/ESX-121/100
/Speed/Current/ESX-121 -- get the current speed (could be /Speed/ESX-121 also)
/Turn/Left/ESX-121
/Speed/Set/ESX-121/90
/Power/Off/ESX-121
私にとって、最初のオプションは、読み取り可能な URL があり、リソース識別子が一定の論理的な場所にある限り、はるかに理にかなっています。たとえば、/Speed/Set/ESX-121/100は、ESX-121 の識別子を持つスピード タイプのリソースがあることを示唆していますが、実際にはそうではありません。操作は車上にあります。
このような場合、URL と関連するコントローラーとアクションをどのように構造化しますか? これは受け入れられる解決策だと思いますか、それともこれを構造化するためのより良い方法はありますか?