advertisement

ASP.NET Web API

44 %
56 %
advertisement
Information about ASP.NET Web API
Technology

Published on March 15, 2014

Author: kaatula

Source: slideshare.net

Description

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

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

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

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

ASP.NET Web API | The ASP.NET Site

Learn About ASP.NET Web API. ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including ...
Read more

Getting Started with ASP.NET Web API 2 (C#) | The ASP.NET Site

Create a Web API Project. In this tutorial, you will use ASP.NET Web API to create a web API that returns a list of products. The front-end web page uses ...
Read more

ASP.NET Web-API

ASP.NET-Web-API ist ein Framework, das das Erstellen von HTTP-Diensten erleichtert, die eine Vielzahl verschiedener Clients bedienen können ...
Read more

ASP.NET Web API

ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices.
Read more

ASP.NET Web API - CodeProject - CodeProject - For those ...

ASP.NET Web API is a framework for building HTTP services that can be accessed from various clients, such as browsers and mobile devices. ASP.NET Web API ...
Read more

ASP.NET Web API – Crashkurs-ASP.NET

Dieses Video-Training behandelt Microsofts Technologie ASP.NET Web API, die als leichtgewichtige Alternative zu WCF gilt und dazu dient, Dienst-basierte ...
Read more

ASP.NET MVC 4 - Web API - Home | devangelist

Die Web API wird als Teil des MVC 4 Frameworks ausgeliefert und bietet eine solide Basis für moderne Webanwendungen.
Read more

CodePlex - ASP.NET MVC / Web API / Web Pages - Home

ASP.NET is a free web framework for building great web sites and applications. This site is the home of the ASP.NET MVC, Web API, and Web Pages source code.
Read more

ASP.NET – Wikipedia

ASP.NET Web API ermöglicht es, REST-Web-Dienste zu implementieren. Daten werden hierbei in Form von JSON, XML oder OData übertragen. Ein JavaScript ...
Read more

ASP.NET Web API in Konsolenanwendung hosten - ASP.NET Tutorial

ASP.NET Web API – Crashkurs. Lernen Sie alles Wichtige zu Caching, asynchronen Methoden, Routing und Security innerhalb der Microsoft-Technologie ASP.NET ...
Read more