Я скоро запустлю новый сайт. Один раздел сайта содержит товары.
В настоящее время я пытаюсь выбрать между различными URL-адресами для маршрутизации ASP.NET:
** Продукты: **
/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'
Мне очень нравится простота /products/1001
, чтобы пользователь мог ее увидеть и изменить - но есть опасность, что она вступит в конфликт с другими действиями, если я не буду осторожен. Я также должен обязательно использовать 'product-route-short'
при создании моих URL, что очень незначительно.
Что кто-нибудь думает? Какой вы нашли лучшую практику? Этот пример довольно прост, но я, конечно, хочу быть единообразным по всему сайту и не хочу, чтобы все было модифицировано, как только Google уже все проиндексировал для меня.
Если есть какие-либо особенно хорошие подкасты или статьи на эту тему (общие или специфичные для ASP.NET), я буду признателен за ссылки на них. Я нашел хороший подкаст, в котором они специально сказали, что «этот подкаст НЕ о том, как создавать хорошие ссылки REST»