Java: Веб-технологии
Теория: Именованные маршруты
Шаблоны сайта содержат множество внутренних ссылок, которые ведут на меню, кнопки и формы. До сих пор мы формировали эти ссылки прямо в тех местах, где они нам нужны:
Так же ссылки строятся и в обработчиках — например, при редиректах:
В примерах выше мы формируем ссылку именно там, где хотим ее использовать. У этого способа есть свои минусы. Для примера представим, что мы решили изменить маршрут с /courses/{id} на /c/{id}. В этом случае нам придется пройтись по всем шаблонам и вручную заменить маршрут во всех ссылках. Это долго и неудобно.
А что будет, если мы решим удалить маршрут /courses/{id}? Тогда сайт продолжит работать, но все ссылки с удаленным маршрутом начнут вести на страницу 404. Не факт, что мы сразу заметим и исправим эту проблему. Будет лучше, если страницы с такими ссылками начнут выдавать ошибки. Тогда выявить подобные ссылки станет крайне просто. Для решения этой задачи придумали именованные маршруты, которые мы обсудим в этом уроке.
Как работают именованные маршруты
Каждому именованному маршруту фреймворка присваивается имя, которое можно использовать при построении конкретной ссылки. В Javalin такой механизм не встроен, но его легко сымитировать. Чтобы это сделать, вручную создадим класс с описанием маршрутов:
В коде выше мы добавили методы. Теперь можно внедрить их в описание маршрутов Javalin и в шаблоны:
Как видите, читаемость кода немного упала. Чтобы ее повысить, можно добавить комментарии над определениями маршрутов, например:
Встраиваем в шаблон:
Теперь ссылка формируется через вызов метода, что дает нам типобезопасность.



