1 / 33

ASP.NET Web API 2— веб-сервисы для веб-сайтов, «современных» и мобильных приложений

ASP.NET Web API 2— веб-сервисы для веб-сайтов, «современных» и мобильных приложений. Андрей Андреев Эксперт по технологиям разработки , Microsoft. HTTP. Веб Сервисы. Больше клиентов. App. Устройства. Браузеры. Смартфоны. ?. ?. ?. ?. Планшеты. Масштабируемость. App. Устройства.

mora
Download Presentation

ASP.NET Web API 2— веб-сервисы для веб-сайтов, «современных» и мобильных приложений

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP.NET Web API 2—веб-сервисы для веб-сайтов, «современных» и мобильных приложений Андрей Андреев Эксперт по технологиям разработки, Microsoft

  2. HTTP ВебСервисы

  3. Больше клиентов App Устройства Браузеры Смартфоны ? ? ? ? Планшеты

  4. Масштабируемость App Устройства Браузеры Смартфоны ? ? ? ? Планшеты

  5. Простота App .config Устройства Браузеры Смартфоны ? ? ? ? Планшеты SOAP

  6. Решение в Web – построение Web APIs App 2 ASP.NET Web API Устройства Браузеры Смартфоны Планшеты

  7. Как начать работать с ASP.NET Web API 2 • Доступно в виде самостоятельных NuGetпакетов • Входит в Visual Studio 2013 Preview • Установите ASP.NET and Web Tools 2013 Preview Refresh, чтобы добавить новые возможности и улучшения • Документация на http://www.asp.net/vnext • Поддерживается .NET 4.5 и выше • Смотрите код на http://aspnetwebstack.codeplex.com

  8. ДЕМО: Ваше первое Web API приложение с ASP.NET Web API 2

  9. Что нового вASP.NET Web API 2 • Маршрутизация атрибутов • Интеграция с OWIN • Упрощённое модульное тестирование (IHttpActionResult) • Портативные Web API клиенты • OData: $select, $expand, $batch • Пакетная обработка запросов • Web API безопасность (CORS, OAuth 2.0)

  10. Маршрутизация атрибутов • Делает Ваши маршрутыближе к ресурсам config.Routes.MapHttpRoute( name: “TodosForTodoList", routeTemplate: "api/todolists/{id}/todos", defaults: new { controller = “todolists”, action = “GetTodos” } ); Controller Selector Action Selector publicIEnumerable<TodoItem> GetTodos() { … }

  11. Маршрутизация атрибутов • Делает Ваши маршрутыближе к ресурсам config.MapHttpAttributeRoutes(); [HttpGet("api/todolists/{id}/todos")] publicIEnumerable<TodoItem> GetTodos(int id) { … }

  12. Маршрутизация атрибутов • Опциональные значения • Значения «по умолчанию» • Встроенные ограничения [HttpGet(“Demographics/{zipcode?}")] publicDemographicsGet(int? zipcode) { … } [HttpGet("Demographics/{zipcode=98052}")] publicDemographicsGet(int zipcode) { … } [HttpGet("people/{id:int}")] publicPerson Get(int id) { … } [HttpGet("people/{name:alpha}")] publicPerson Get(string name) { … }

  13. Подробности здесь http://attributerouting.net

  14. Модульное тестирование Web APIs • Раньше это было сложнее, чем следовало бы . . . • Сейчас для модульного тестирования нужно лишь: • Создать контроллер • Задать свойства, которые нужны (Request, Configuration, и т.д.) • Вызвать действие • ИспользуйтеIHttpActionResultчтобы «упаковать» повторяющуюся логику • Выполняется немедленно после запуска - остальная часть конвейера видит ответное сообщение

  15. OWIN интеграция • OWIN = Open Web Interface for .NET (http://owin.org) • Определяет общий интерфейс, который отделяет веб-приложения от веб-серверов • Вдохновлено любовью к node.js, Rack, WSGI • Промежуточный конвейер находится ... да, в середине • Теперь глубоко интегрирован с ASP.NET конвейером • Пример:Запуск авторизационного промежуточного конвейера во время работы ASP.NET конвейера авторизации • Запускайте ваши Web APIs на любом совместимом с OWIN хосте

  16. ASP.NET Web API OData • Компоненты для реализации OData сервисов • Построители моделей, средства форматирования (Atom/JSON/XML), трассировщики запросов и путей, генератор LINQ выражений, и т.д. • Это не “всё или ничего” – Вы можете использовать столько, сколько Вам нужно • Строится на ODataLib • Та же основа, что и WCF Data Services • Сначала распространялось с Visual Studio 2012 Update 2 • Сейчас поддерживает $select, $expand и $batch!

  17. Web API Безопасность Free • Вы бы доверились такому • приложению? Friends Please give me your password

  18. Проблемы с безопасностью Web API • Пользователи могут не захотеть доверить клиентским приложениям свои учетные данные • Приложения не хотят сохранять учетные данные пользователя • Многие серверы тоже не хотят сохранять учетные данные пользователей • Доступ клиентских приложений к защищённым ресурсам должен быть ограничен • Поддержка браузерных и кросс-браузерных клиентов • Избежать опасности подделки запросов • Нужен дружественный подход для родных и мобильных приложений

  19. Где !?! печенюшки

  20. OAuth 2.0 • Фреймворк для авторизации доступа клиентов кзащищённым ресурсам пользователей • IETF стандарт (RFCs 6749, 6750) • Предназначен для работы с HTTP службами • Множественные профили согласно клиентам и типам доступа • Это не протокол проверки подлинности • …но он может быть создан на этой основе.

  21. OAuth 2.0 Эй, товарищ, можно посмотреть твои фотографии? Клиент Пользователь сказал, что я могу получить доступ к его фото– вот доказательство OK Владелец Ресурса (пользователь) Запрос авторизации Авторизация выдана Выглядит хорошо – вот маркеры, которые можно использовать Вот мой маркер доступа. Фотографии пользователя, пожалуйста. Сервер Авторизации Авторизация получена Маркер доступа Сервер Ресурсов (Web API) OK, пожалуйста Маркер доступа Защищённый ресурс

  22. OAuth 2.0 – получение авторизации Сервер Авторизации Конечная точка авторизации Конечная точка маркера юзер 302 3 CODE Пользователь 2 <Client ID> <Client ID> 302 Защищённый Ресурс Браузер 1 Клиент

  23. OAuth 2.0 – получение маркера Сервер Авторизации Конечная точка авторизации Конечная точка маркера клиент 2 Клиент <Client ID> 1 CODE маркер доступа обновление маркера Защищённый ресурс

  24. OAuth 2.0 – запрос ресурсов Сервер Авторизации Конечная точка авторизации Конечная точка маркера Client маркер доступа Авторизация: Предъявитель обновление маркера 1 Защищённый ресурс 2 Client

  25. OAuth 2.0 – обновление маркера доступа Сервер Авторизации Конечная точка авторизации Конечная точка маркера клиент 2 <Client ID> Клиент 1 маркер авторизации обновление маркера обновление маркера Защищённый ресурс

  26. OAuth 2.0 Поддержка маркеров предъявителя • Авторизация запросов с использованием OAuth 2.0 маркеров Предъявителя • Промежуточный Предъявитель проверяет и конвертирует маркеры в заявки Авторизация Предъявителя ×  Защищённый Ресурс Клиент

  27. OAuth 2.0 Поддержка маркеров предъявителя • public class Startup • { • public void ConfigureAuth(IAppBuilder app) • { • // Позволяет приложению использоватьOAuth 2.0 маркеры предъявителя для авторизации // пользователей • app.UseOAuthBearerAuthentication(newOAuthBearerAuthenticationOptions()); • } • }

  28. OAuth 2.0 поддержка сервера авторизации • Две опции: • 1. Иметь свой собственный • Простой сервер авторизациив шаблоне Single Page Application • Поддержка сервера авторизации в OWIN слое (в будущем) • 2. Использовать существующий • Windows Azure Active Directory • Active Directory Federation Services в Window Server 2012 R2

  29. Поддержка множества клиентов спортативными библиотеками Web API Windows Phone App Windows Store App Single Page App Portable Web API Client

  30. ДЕМО: Book Store - Web API && Windows Phone 8 app

  31. What’s new in ASP.NET Web API 2 • Маршрутизация атрибутов • Интеграция с OWIN • Упрощённое модульное тестирование (IHttpActionResult) • Портативные Web API клиенты • OData: $select, $expand, $batch • Пакетная обработка запросов • Web API безопасность (CORS, OAuth 2.0)

  32. Ресурсы • Новинки • http://www.asp.net/vnext • http://www.asp.net/webapi • Прогресс • http://aspnetwebstack.codeplex.com • http://katanaproject.codeplex.com

More Related