Pull to refresh

WebAPI: автогенерация веб-документации REST API

Reading time 7 min
Views 18K
Microsoft corporate blog Website development *.NET *
Translation
В этой записи блога мы близко рассмотрим ApiExplorer, являющийся реализацией IApiExplorer по умолчанию и увидим как с помощью него можно быстро сгенерировать веб-документацию по доступному REST API. В этой документации будет содержаться разнообразная информация, например, правильные URL, допустимые HTTP-методы, ожидаемые для запросов параметры. Такого рода информация для вашего REST-сервиса позволит сторонним разработчикам, потребляющим ваш API, точно знать как правильно вызывать его части. Наверное, самое приятное в такой странице веб-документации состоит в том, что она будет обновляться автоматически вместе с обновлением вашего REST API.

ApiExplorer


Основной целью этого класса является генерирование коллекции элементов ApiDescription. Это производится с помощью статической проверки маршрутов и доступных действий внутри ваших контроллеров. Каждый элемент ApiDescription описывает API доступный через ваш сервис. Как вы можете видеть на упрощенной диаграмме (рисунок 1) ApiDescription содержит базовую информацию такую как, HttpMethod, RelativePath, Documentation и т.д. Но кроме того, он содержит элемент ApiDescriptor, который является частью ядра WebAPI знающей все о соответствующем действии. Вы можете использовать этот элемент для получения доступа к обширной информации, такой как имя действия, возвращаемый тип, пользовательские атрибуты и т.д. Точно так же вы можете использовать элемент ParameterDescriptor для изучения ожидаемых параметров данного API.
Читать дальше →
Total votes 17: ↑13 and ↓4 +9
Comments 0

Эффективное использование WebAPI: self hosting REST-сервисов

Reading time 5 min
Views 42K
Microsoft corporate blog .NET *ASP *
С выходом ASP.NET WebAPI у разработчиков появилась возможность быстро создавать REST-сервисы в удобном виде, с одной стороны полностью реализуя принципы REST, а с другой используя всю мощь платформы ASP.NET.

Про возможности и применение WebAPI написано уже достаточно много статей, например, вы можете узнать о интересной функции самодокументирования API сервиса через ApiExplorer.

Существует еще одна замечательная возможность WebAPI, про которую написано не так много — это возможность WebAPI осуществлять самостоятельный хостинг сервиса (self hosting). В этой статье на примере разбирается, как создавать и запускать REST selfhosting-сервисы на базе WebAPI.

Self hosting REST-сервиса


Для предоставления доступа к API сервиса не всегда является целесообразным разворачивать его на базе сервера IIS. Если сервис не является частью какого-либо веб-приложения, имеет смысл запускать его на базе собственной инфраструктуры.

Другим вариантом использования механизма self hosting может быть запуск сервисов на платформах, которые не содержат сервер IIS либо на которых запуск IIS осложнен или излишен.

Так или иначе, WebAPI позволяет вам создавать сервисы независимые от IIS, доступ к которым может быть получен без установки веб-приложения на веб-сервер .
Читать дальше →
Total votes 17: ↑12 and ↓5 +7
Comments 36

Международный Web Camp придет в Россию в рамках Windows Azure Summit

Reading time 3 min
Views 1.6K
Microsoft corporate blog .NET *ASP *
azure summit

Уважаемые разработчики, спешу поделиться хорошей новостью. Серия международных мероприятий Web Camp, целиком посвященных веб-разработке на платформе .NET и ASP.NET, приходит в Россию. В рамках Windows Azure Summit пройдет крайне интересный и насыщенный трек докладов по разработке современных веб-приложений на базе технологий ASP.NET, MVC, SignalR, HTML5, jQuery, Web API и Windows Azure.

Доклады Web Camp будут читать известные в сообществе эксперты из Microsoft: Натан Тоттен (Nathan Totten) и Ник Харрис (Nick Harris). Вы могли видеть Натана и Ника в блогах MSDN и записях портала Channel 9, где они часто ведут видео-записи.

Расписание и темы докладов:

  • Построение и размещение веб-сайтов на базе ASP.NET MVC 4, Nathan Totten
  • Создание приложений HTML5 с помощью jQuery, Nathan Totten
  • Коммуникации в реальном времени с SignalR, Nathan Totten
  • Построение приложений для мобильного веба, Nathan Totten 
  • Использование облачных сервисов Windows Azure в своем веб-приложении, Nick Harris
  • Построение сервисного уровня приложений с помощью ASP.NET Web API, Nick Harris
  • Построение приложений с использованием социальных сервисов в ASP.NET, Nick Harris

Большая конференция Windows Azure Summit состоится 20 февраля 2013 года в Москве. Конференция бесплатна для всех! Увы мы не можем вместить всех желающих, поэтому требуется регистрация.

Регистрация уже открыта!  Торопитесь занять место


Ниже вы можете найти информацию о докладчиках.
Читать дальше →
Total votes 18: ↑12 and ↓6 +6
Comments 0

Как я перестал волноваться и стал отдавать метаданные restful API

Reading time 5 min
Views 18K
«Дневник.ру» corporate blog API *


Если вы делаете публичный API, то скорее всего сталкивались с проблемой его документации. Большие компании делают специальные порталы для разработчиков, где можно почитать и обсудить документацию, или скачать библиотеку-клиент для вашего любимого языка программирования.

Поддержка такого ресурса (особенно в условиях, когда API активно развивается) — достаточно трудозатратное дело. При изменениях, приходится синхронизировать документацию с фактической реализацией и это напрягает. Синхронизация состоит из:
  • Проверки, что вся существующая функциональность описана в документации
  • Проверки, что всё описанное работает как заявлено в документации
Читать дальше →
Total votes 27: ↑22 and ↓5 +17
Comments 20

Некоторые аспекты логирования ASP.NET-сайта

Reading time 16 min
Views 20K
.NET *ASP *
Здравствуйте!

Сегодня я расскажу, как сделаны некоторые аспекты логирования в сайте, в разработке которого я принимаю участие.

Сайт написан на ASP.NET MVC 5 и Web API 4, для логирования используется библиотека NLog, сайт хостится в облаке Амазона. Записи лога пишутся в три места (target по терминологии NLog): в файловую систему (подпапку Logs папки App_Data, в которую разрешается доступ на запись при стандартных настройках деплоя Amazon Elastic Beanstalk), на сервис logentries и в БД. Записи лога за день ведутся в отдельный файл, в названии которого указывается текущая дата.
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 19

Мобильные сервисы для ASP.NET разработчиков

Reading time 9 min
Views 10K
Microsoft corporate blog .NET *Microsoft Azure *
Translation


Мобильные сервисы Microsoft Azure предоставляют разработчикам готовое решение для реализации облачного бэкэнда в приложении. Теперь мобильные службы Azure полностью поддерживают создание серверной логики с помощью ASP.NET Web API и представляют отличный выбор для разработчиков, проектирующих мобильные API с помощью ASP.NET:

  • Готовый бэкэнд c набором SDK для всех мобильных платформ. С помощью мобильных сервисов Azure вы cможете быстро добавить полнофункциональный бэкэнд для ваших iOS, Android, Windows, Windows Phone, или HTML приложений, а так же для кросс-платформенных решений на базе Xamarin, Sencha и PhoneGap. Мы предоставляем клиентские пакеты SDK для каждой из этих платформ, облегчая интеграцию приложений с бэкэндом в облаке.

Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 8

Breeze Server — разграничиваем доступ к объектам при помощи атрибутов

Reading time 12 min
Views 8.2K
Website development *JavaScript *.NET *ASP *C# *
Tutorial

В прошлой статье Breeze.js + Entity Framework + Angular.js = удобная работа с сущностями базы данных прямо из браузера мы рассмотрели создание простейшего приложения, где делали выборки и сохраняли данные в базе прямо из javascript в браузере. Конечно же первыми у читателей возникли вопросы о безопасности. Поэтому сегодня мы рассмотрим, как можно организовать разграничение доступа. Для этого мы немного доработаем наше приложение из прошлой статьи так, чтобы можно было при помощи атрибутов раздать определённые права доступа на добавление, удаление, изменение и просмотр данных определённым пользователям или ролям.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 2

Использование единого IoC Container'a в рамках HTTP-запроса между Web API и OWIN Middleware

Reading time 6 min
Views 8.7K
.NET *
Sandbox
Целью данной статьи является поиск рабочего решение, которое позволяет иметь единый контейнер зависимостей (IoC контейнер) на протяжении всего жизненного цикла запроса, контролировать его создание и уничтожение.

image

Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 65