Как можно управлять версиями в 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 это может быть невозможно.