Я понимаю, что мои URL могут быть любыми. Что такое канонический способ сделать это?
На самом деле «канонического способа» создания URL-адресов нет, кроме канонического способа именования переменных - есть только локальное написание условные обозначения.
RF C 3986 различает иерархические и неиерархические данные:
Компонент пути содержит данные, обычно организованные в иерархической форме, которые вместе с данными в неиерархическом компоненте запросов (раздел 3.4) служит для идентификации ресурса в рамках схемы URI и полномочий по именованию (если есть)
Эффект от использования иерархических данных заключается в том, что вы можете использовать точечные сегменты для вычисления одного URI из другого.
Например,
/town/alias/{alias}
/alias/{alias}
Оба этих варианта написания "хороши", но /town/alias
дает нам возможность использования точечных сегментов для указания идентификатора в /town
/town/alias/abc + ../123
=> /town/alias/../123
=> /town/123
Это может быть удобно, когда позволяет повторно использовать представление для нескольких ресурсов в вашем erarchy.