Доступна для загрузки ASP.NET Web API 2.1

Стала доступна для загрузки финальная версия 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.

Добавить комментарий