Можно ли настроить маршруты для игнорирования параметров запроса при выборе Действия в ASP. NET WebApi? - PullRequest
0 голосов
/ 24 апреля 2020

Я читал здесь (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

Заранее спасибо!

...