ASP.NET Web API
Upcoming SlideShare
Loading in...5
×
 

ASP.NET Web API

on

  • 699 views

Слайды со встречи http://getdev.net/Event/webapi ...

Слайды со встречи http://getdev.net/Event/webapi

Платформа ASP.NET Web API позволяет с легкостью создавать службы HTTP для широкого диапазона клиентов, включая браузеры и мобильные устройства. ASP.NET Web API идеально подходит для разработки приложений RESTful на платформе .NET Framework. Будут упомянуты понятия REST и отличие REST-пути от RPC (WCF)-пути, рассмотрен стандарт OData, сказаны слова OWIN и Katana

Statistics

Views

Total Views
699
Views on SlideShare
505
Embed Views
194

Actions

Likes
0
Downloads
1
Comments
0

3 Embeds 194

http://getdev.net 173
http://www.getdev.net 15
http://www.slideee.com 6

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

ASP.NET Web API ASP.NET Web API Presentation Transcript

  • ASP.NET Web API Фреймворк для работы с данными по HTTP Андрей Кулешов
  • ASP.NET Web API – история ▪ Первый релиз – 2012 год ▪ Текущая версия Web API 2.1 – 20 января 2014 года ▪ Перерождение WCF
  • Эволюция доступа к данным ▪ RPC (SOAP, WCF) -> REST ▪ От абстракции – возвращение к четко определенному протоколу HTTP ▪ RPC – Remote Procedure Call – удалѐнный вызов кода на серверной стороне посредством магии ▪ Подход RPC позволяет использовать небольшое количество сетевых ресурсов с большим количеством методов и сложным протоколом. При подходе REST количество методов и сложность протокола строго ограничены, из-за чего количество отдельных ресурсов может быть большим.
  • Representational state transfer (REST) ▪ REST (сокр. англ. Representational State Transfer, «передача состояния представления»[1] или «передача репрезентативного состояния») — стиль построения архитектуры распределенного приложения. Был описан и популяризован в 2000 году Роем Филдингом (Roy Fielding), одним из создателей протокола HTTP. Самой известной системой, построенной в значительной степени по архитектуре REST, является современная Всемирная паутина. ▪ Данные в REST должны передаваться в виде небольшого количества стандартных форматов (например HTML, XML, JSON). Сетевой протокол (как и HTTP) должен поддерживать кэширование, не должен зависеть от сетевого слоя, не должен сохранять информацию о состоянии между парами «запрос-ответ». Утверждается, что такой подход обеспечивает масштабируемость системы и позволяет ей эволюционировать с новыми требованиями.
  • REST <-> HTTP ▪ Методы HTTP, используемые в REST, определяют тип совершаемой операции ▪ GET – получение существующих сущностей ▪ POST – модификация существующих сущностей ▪ PUT – создание сущностей ▪ PUT DELETE – как слышится, так и пишется
  • REST ▪ Вызываемый метод определяется адресом URI и методом Verb ▪ Отсутствие состояния у системы (stateless система – в противоположность statefull системе) ▪ Кэширование
  • Демо ▪ Совсем простое Web API ▪ Совсем простое клиентское приложение
  • Контроллеры и методы ▪ Рекомендованный путь – один контроллер на одну сущность данных BookController AuthorController ReaderController ▪ Каждый контроллер содержит множество методов ▪ Имя метода (action) сопоставляется c методом (verb) запроса EventController: ApiContoller{ public Event GetMyCoolEvent() { return new Event(); } } Данный метод сопоставляется со всеми GET-запросами. Остаток имени (MyCoolEvent) игнорируется Если Get*-методов несколько – выбирается первый соответствующий по параметрам ▪ Параметры могу приходить из URL, в HTTP-заголовках или из тела запроса (для POST/PUT/DELETE запросов)
  • Роутинг ▪ При разработке устанавливаются правила соответствия пришедшего запроса и наших классов *Controller и их методов ▪ В пришедшем запросе (по умолчанию) смотрят на: o путь (URL) o HTTP-метод (GET, POST, PUT, UPDATE) ▪ Классический подход, пришедший из ASP.NET MVC – заполнение набора правил роутинга ▪ Новый подход – установка атрибутов на действия
  • OData ▪ Стандарт протокола запросов при обращении к данным ▪ Попытка Майкрософт и К стандартизовать язык запросов к REST-сервисам ▪ Задает стандартные операции над сущностями – фильтрация, сортировка, разбиение на страницы и получение связанных сущностей
  • Odata и Web API 2.1 ▪ Поддерживаемые Web API v.2.1 операции: $filter – фильтрация выборки $orderby - сортировка $top/$skip – первые N записей и пропуск первых N записей; разбиение на страницы $inlinecount – добавляет в ответ информацию о количестве записей, удовлетворяющих условию $select – выбор того, какие данные сущности будут возвращены $expand – позволяет как результат запроса к сущностям одного типа получить также связанные сущности другого типа (например, при запросе к данным о книгах – получить в том же запросе ответ об авторах этих книг) ▪ По умолчанию выключены, включаются централизованно либо для нужных методов через атрибуты
  • Демо ▪ Включение OData ▪ Фильтрация через параметры URL
  • Безопасность ▪ Авторизация пользователей ▪ Поддержка CORS (из коробки с версии 2.1 – добавлена как патч от члена сообщества)
  • Справка по API ▪ Web API из коробки поддерживает возможность автоматического создания справочных страниц на основе сгенерированного Web API ▪ Туда собираются данные об известных сущностях, поддерживаемых операциях и URL-адресах ▪ Если необходима тонкая настройка – возможен непосредственный доступ к данным через ApiExplorer
  • Создание справки ▪ Добавление справки в проект
  • Размещение Web API ▪ Классическое – как часть ASP.NET сайта на IIS ▪ Self-hosting – возможность встроить Web API куда угодно (в разного рода демонстрациях – в консольное приложение, в реальной жизни – в Windows- сервисы) ▪ OWIN – то же самое, что и предыдущий пункт, но по-новому Open Web Interface for .NET Новая реализация стэка работы с сетью по протоколу HTTP, не привязанная к IIS вообще и к System.Web.dll в частности
  • Интересное чтение ▪ Официальный сайт. Документация, примеры и статьи http://asp.net/web-api ▪ REST на Википедии ▪ ASP.NET MVC 4 and the Web API: Building a REST Service from Start to Finish by Jamie Kurtz ▪ OData http://www.odata.org
  • Интересное видео ▪ ASP.NET Web API – What’s New (версия 2.0)
  • Вопросы? Внимательно слушаю!  Андрей Кулешов kaa-tula@ya.ru akuleshov.tula Специально для http://GetDev.NET