すぐに新しいサイトを立ち上げます。サイトの1つのセクションには製品が含まれています。ASP.NET MVCの{controller}/{action}/{id} REST URLフォーマットから逸脱しているという落とし穴がありますか?
私は現在、ASP.NETルーティングのために異なるURL間で決定しようとしています:
**製品:**
/products/1001
/products/sku/1001
/products/product/1001
/products/view/1001
**カテゴリー:**
/products/category/cats
/products/category/clothing
/products/cats - this is pretty nasty
/products/clothing
私は主に次のうちどれを採用すべきかを決定しようとしています。 私は現在最初のことをしています。
routes.MapRoute(
"product-route-short",
"products/{sku}",
new { controller = "Products", action = "ViewProduct", sku = "1001"}
);
または
routes.MapRoute(
"product-route-short",
"products/sku/{sku}",
new { controller = "Products", action = "ViewProduct", sku = "1001"}
);
または以下
* call the action 'sku' , 'details' , 'item'
* use an [ActionName] attribute and leave the action method name as 'ViewProduct'
の1私は本当に/products/1001
のシンプルさのようなので、ユーザはそれを見て、それを変更することができます - しかし、危険はすぐそこにあります私が慎重でないならば、それは他の行動と矛盾します。ごくわずかな痛みであるURLSを作成する際には、必ず'product-route-short'
を使用する必要があります。
誰もが何と思いますか?ベストプラクティスを見つけましたか?この例はかなりシンプルですが、サイト全体で一貫性を持たせたいと思っています。そして、Googleが既にすべてのものを索引付けしたら、すべてを改造する必要はありません。
特にポッドキャストや記事が(一般的またはASP.NET特有の)件名にある場合は、それらのリンクを参考にしてください。私は良いポッドキャストを見つけました。具体的には、「このポッドキャストは良いRESTリンクを作成する方法ではありません」ということでした。
最終的なものの後にあるものはすべて/無視されます。これにより、URLをコピーして過去のものにすることが容易になり、それらの参照先を知ることができます。またあなたは質問のタイトルを変更することができ、既存のリンクは壊れない –