Я создаю API в .Net Core 2.1 и имею систему подкачки, где пользователь может запрашивать большие объемы, которые возвращаются кусками настраиваемого размера. Когда блок отправляется, он будет содержать GUID, который является ссылкой на следующий блок данных
Например, если у нас есть попадание, которое возвращает 526 результатов, оно разделит данные на 5 x 100 и 1 x 26 фрагментов записи. Первый удар получен из
GET / events /
Вторая страница данных будет получена из чего-то вроде
GET / events / 95d9f018-bff9-46e7-ad86-9b9d6734cc0d
У меня уже есть несколько маршрутов для каждого из моих методов контроллера
[HttpGet("/events/"]
public ActionResult GetAllEvents() {}
[HttpGet("/events/{EventId}"]
public ActionResult GetEvent(int EventId) {}
[HttpGet("/events/after/{AfterDate}"]
public ActionResult GetEventsAfter(DateTime AfterDate) {}
и в некоторых случаях методы могут иметь несколько значений маршрута. То, что я хотел бы добавить, это единственная перехват всех, где, если URL заканчивается GUID, он маршрутизируется по-другому.
В настоящий момент я вижу, что, если я добавлю GUID, он перейдет в метод «GetEvent»
Я попытался добавить маршрут в MVC
app.UseMvc(routes =>
{
routes.MapRoute(
name: "Continuation",
template: "Route/{*ContinuationToken}",
defaults: new { controller = "Continuation", action = "GetPagedResponse" },
constraints: new { ContinuationToken = @"(?im)^[{(]?[0-9A-F]{8}[-]?(?:[0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$" }
);
});
Но очевидно, что это неправильный подход к реализации, поскольку запрос все еще направляется на оригинальный контроллер и действие, а не на ContinuationController
Есть ли способ направить все запросы, заканчивающиеся Guid, к определенному
контроллер и действие?