Как можно управлять версиями в ASP.NET Core Web Api

В предыдущемasp.net web apiЯ реализуюDefaultHttpControllerSelector указать, как я хочу, чтобы запрос найти мой контроллер. У меня часто бывают разные контроллеры с разными именами, но они предназначены для одних и тех же процессов. Разница лишь в том, что один имеет более высокую версию, чем другой.

Например, я мог бы иметь контроллер с именемBookingV1Controller, который будет предназначен для обработки первой версии сервиса. Я бы тожеBookingV2Controller, который был разработан для обработки второй версии сервиса. Затем клиентское приложение отправляет запрос в службу с этим URLhttp://myservice.com/api/v2/booking/someaction?id=12, Для обработки запроса я бы предоставил собственную реализациюDefaultHttpControllerSelector выбрать соответствующую версию контроллера, необходимую на основе запрашиваемой версии.

Тем не менее, я, кажется, не могу сделать это вASP.NET Core, Я искал везде безрезультатно. Нет документации, которая могла бы помочь.

Буду признателен, если кто-нибудь может помочь мне здесь. Благодарю.

ОБНОВИТЬ Я также хотел бы знать, что делать, если версия указана в пользовательском заголовке. НапримерX-Version:v1

ОБНОВЛЕНИЕ 2

Требование заключалось в том, что версия службы не должна отображаться в URL. Если версия отсутствует, служба возвращается с инструкцией о том, как добавить версию. Если запрошенный контроллер отсутствует в запрашиваемой версии, система выполняет поиск младших версий. Если он находит его в более низких версиях, он использует это. Причина этого состоит в том, чтобы предотвратить повторение контроллеров на всех версиях. Но с ASP.NET Core это может быть невозможно.

Ответы на вопрос(1)

Ваш ответ на вопрос