Ефективно използване на услугите за самоподдържане REST на WebAPI

С пускането на ASP.NET WebAPI разработчиците имат възможност бързо да създават REST услуги в удобна форма, от една страна, напълно прилагайки принципите на REST, и от друга страна, използвайки пълната мощ на ASP.NET платформа.

Вече са написани доста статии за възможностите и използването на WebAPI, например можете да научите за интересната функция на самодокументиране на услугата API чрез ApiExplorer.

Има още една чудесна характеристика на WebAPI, за която не е писано много - това е способността на WebAPI да хоства услуга. Тази статия използва пример, за да обясни как да създадете и стартирате REST самохостинг услуги, базирани на WebAPI.

Самостоятелно хостинг REST услуга

За да се осигури достъп до API на услуга, не винаги е препоръчително да се разполага на базата на IIS сървър. Ако услугата не е част от което и да е уеб приложение, има смисъл да я стартирате въз основа на собствената си инфраструктура.

Друга възможност за използване на механизма за самохостиране може да бъде стартиране на услуги на платформи, които не съдържат IIS сървър или на които стартирането на IIS е сложно или ненужно.

По един или друг начин, WebAPI ви позволява да създавате услуги, независими от IIS, които могат да бъдат достъпни без инсталиране на уеб приложение на уеб сървър. .

Обслужване в конзолното приложение

Нека разгледаме функцията за самохостиране, използвайки най-простия пример за конзолно приложение. Създайте конзолно приложение в Visual Studio 2012 въз основа на шаблона C #.

Инсталирайте пакета AspNetWebApi.Selfhost, като използвате конзолата NuGet Package Manager. Това може да стане със следната команда:

Тази команда ще инсталира всички необходими компоненти в проекта за конзолно приложение. След това добавете препратка към сборката System.Web към проекта, ако все още няма такава препратка.

Първата стъпка при създаването на услуга за самохостинг е да я конфигурирате. Класът HttpSelfHostConfiguration е отговорен за конфигурирането. По-долу е даден пример за конфигуриране на услуга:

Следващата стъпка е да стартирате сървъра, това се постига с помощта на друг клас, HttpSelfHostServer. По-долу е даден кодът, който стартира сървъра за услуги за самохостинг:

Време е да добавим REST услуга към нашето приложение, което ще бъде хоствано на нашия сървър. За да направите това, добавете нов елемент на клас на уеб API контролер към проекта, например, наречен ProductController. Добавете нов клас с име Product към вашия проект: