Приписывание ограничений в вебапи
В документации по атрибуции есть ряд предупреждений, в которых говорится, что " повышение производительности при сопоставлении маршрутов" не работает. О каких улучшениях производительности они говорят и что это означает с точки зрения производительности в производственной системе - достаточно ли это, чтобы не учитывать атрибуцию в производственной системе?
Как насчет более подробной информации о пользовательских обработчиках маршрута и ограничениях параметров строки запроса? Что они подразумевают под "пользовательским" и что касается ограничений строки запроса, это ограничения на тип данных?
Я хотел бы понять это немного больше, а также измерить его влияние в моих сценариях использования, чтобы определить, подходит ли пакет маршрутизации атрибутов для web-api для моего производственного API.
1 ответ
РЕЗЮМЕ
Выполните оценку на основе RTM-версии ASP.NET v5 либо из исходной, либо из ночной сборки, поскольку она включает AttributeRouting.
ДЕТАЛЬ
слияние
AttributeRouting был внедрен в ASP.NET v5 RTM с участием владельца пакета AR Тима Маккола. v5 находится в стадии бета-тестирования с февраля 2013 года. См. дорожную карту ASP.NET на сайте документации ASP.NET.
Пользовательские обработчики маршрутов
Ограничения параметров
Поддержка классов на основе HttpVerbAttribute (примеры из AttributeRoutingTest.cs):
Ограничения типа параметра
[HttpGet("controller/{id:int}")]
public string Get(int id) { ... }
Необязательные параметры
[HttpGet("optional/{opt1?}/{opt2?}")]
public string Optional(string opt1 = null, string opt2 = null) { ... }
Значения по умолчанию
[HttpGet("default/{default1=D1}/{default2=D2}")]
public string Default(string default1, string default2) { ... }
Параметры подстановочных знаков
[HttpGet("wildcard/{*wildcard}")]
public string Wildcard(string wildcard) { ... }