Стала доступна для загрузки финальная версия ASP.NET Web API 2.1.
Требования
Для Visual Studio 2012 необходимо установить ASP.NET and Web Tools 2013.1 for Visual Studio 2012.
Для Visual Studio 2013 – Visual Studio 2013 Update 1.
Что нового в ASP.NET Web API 2.1?
Глобальная обработка ошибок
Теперь все ошибки могут быть обработаны используя единый централизованный механизм. Поддерживаются различные внешние обработчики. Для примера – использование с ELMAH.
Улучшены атрибуты путей (Attribute routing)
Атрибуты путей теперь поддерживают версионность, ограничения, выбор пути по заголовку. Модификация их поведения возможна с помощью интерфейса IDirectRouteFactory и класса RouteFactoryAttribute. Префикс пути так же можно контролировать через IRoutePrefix и RoutePrefixAttribute.
Улучшения страницы документации (Help Pages API)
В Web API 2.1 добавлено:
- Документация для свойств параметров или возвращаемых типов.
- Документация для аннотаций модели (data model annotations).
Дизайн страницы так же модифицирован для соответствия сделанным изменениям.
Поддержка IgnoreRoute
Web API 2.1 теперь поддерживает игнорирование запросов с помощью метода IgnoreRoute(). Например, следующим образом можно игнорировать все URI, которые начинаются с "content":
routes.IgnoreRoute("IgnoreContent", "content/{*paths}");
routes.MapHttpRoute("Default", "{controller}/{id}");
Поддержка BSON
Реализована поддержка формата BSON. Чтобы ее задействовать, необходимо добавить BsonMediaTypeFormatter в список Formatters.
config.Formatters.Add(new BsonMediaTypeFormatter());
Теперь, в .NET приложении можно получить данные в BSON:
// Add Accept header.
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/bson"));
// POST data in BSON format.
HttpResponseMessage response = await client.PostAsync<MyData>("api/MyData", data, new
BsonMediaTypeFormatter());
// GET data in BSON format.
data = await response.Content.ReadAsAsync<MyData>(new MediaTypeFormatter[] {
new BsonMediaTypeFormatter() });
Полностью пример можно посмотреть на CodePlex.
Улучшена поддержка асинхронных фильтров
Для создания асинхронного фильтра теперь достаточно перегрузить один из асинхронных методов (On*Async). Например:
public class AsyncLoggingFilter : ActionFilterAttribute
{
public override async Task OnActionExecutingAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
await Trace.WriteAsync("Executing action named {0} for request {1}.",
actionContext.ActionDescriptor.ActionName,
actionContext.Request.GetCorrelationId());
}
}
Асинхронные операции поддерживают классы AuthorizationFilterAttribute, ActionFilterAttribute и ExceptionFilterAttribute.
Разбор запроса на стороне клиента
Клиентские приложения теперь могут легко разбирать и модифицировать запросы, используя метод ParseQueryString(). Его результат это коллекция HttpValueCollection с которой очень просто работать.
Изменения имен интерфейсов и классов
По сравнению с Web API 2.1 RC, были изменены следую��ие имена интерфейсов и классов:
- IDirectRouteProvider –> IDirectRouteFactory;
- RouteProviderAttribute –> RouteFactoryAttribute;
- DirectRouteProviderContext –> DirectRouteFactoryContext.
Исправления ошибок
С выходом ASP.NET Web API 2.1 было исправлено 93 ошибки. Их список доступен на странице CodePlex.
Как загрузить новые версии?
Установка в новый проект осуществляется командой Install-Package в консоли NuGet:
Install-Package Microsoft.AspNet.WebApi -ProjectName [имя проекта]
В уже существующем проекте для обновления необходимо использовать команду Update-Package.