Маршруты проверяются на соответствие входящему URL-адресу в порядке их регистрации на маршрутизаторе и в порядке регистрации маршрутизаторов в приложении.В вашем случае первый маршрут находит совпадение с маршрутом и обрабатывает запрос, а маршрутизация не продолжается ни для каких других обработчиков маршрута.
Прежде всего, я предполагаю, что этот маршрутизатор назначен на / api, поэтому он видит все маршруты, начинающиеся с / api.Вы не показываете этот код, но, похоже, это то, что вы должны делать.
Итак, поскольку '/tif/:test2/:one'
является более общим, чем '/tif/test1/:one'
, и первый из них будет соответствовать вашему URL, /api/tif/test1/1
второй маршрут никогда не получает шанса.
Изменяя порядок маршрутизатора, я могу получить ожидаемый ответ «Тестируй один».Мы не можем объяснить это поведение.
Когда вы ставите '/tif/test1/:one'
первым, он получает первый шанс на /api/tif/test1/1
и сопоставляет его, чтобы вы получили желаемое поведение.
Общее правило таково: «Если у вас есть несколько маршрутов, которые могут соответствовать заданному URL-адресу, поместите сначала менее общие маршруты перед более общими маршрутами, чтобы они получили возможность сопоставить URL-адрес, который им подходит».Если вы этого не сделаете, то менее общие маршруты никогда не получат шансов на совпадение, потому что более общие маршруты будут совпадать первыми и «обработать» запрос, прежде чем другие получат возможность их увидеть.