Я читал здесь (https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/routing-and-action-selection#action -selection ) о том, как WebAPI выбирает действие на основе URI и словаря маршрутов и настроенных маршрутов. Я хочу знать, есть ли способ зарегистрировать маршрут и настроить его так, чтобы он игнорировал параметры запроса при выборе действий. Лучше объяснить в следующем сценарии.
Предположим, у меня есть 2 API, API1, API2 с подписями и пути, отличающиеся только одним параметром.
API1(string param1, string param2, string param3)
API1 зарегистрирован как ниже
config.Routes.MapHttpRoute(
"Api1",
$"something/{{param1}}/else/{{param2}}/again/{{param3}}",
new { controller = MyController });
API2(string param1, string param2, string param3, string path)
API2 зарегистрирован как показано ниже
config.Routes.MapHttpRoute(
"Api2",
$"something/{{param1}}/else/{{param2}}/again/{{param3}}/{{*path}}",
new { controller = MyController });
Обратите внимание, что они отличаются только дополнительными /{{*path}}.
Теперь, когда я делаю запрос с помощью URL ниже
https://baseUrl.domain.com/something/e249d629b107/else/amnatrg/again/thirdParamValue? Путь = somePath
Я хочу запрос к go до API1
и НЕ до API2
. Я знаю, что могу переименовать string path
(4-й параметр) в API2 во что-то еще, и это вызовет запрос go к API1.
Но я также хочу проверить, можно ли вообще настроить маршрут и сказать ему «игнорировать» параметры запроса и только проверить переменные словаря маршрута, чтобы выбрать действие? В основном НЕ учитывать параметры запроса при выборе действий, как указано в первой ссылке вверху. Выдержка ниже:
![Excerpt from first link](https://i.stack.imgur.com/C7zSn.png)
Заранее спасибо!