- PVSM.RU - https://www.pvsm.ru -
Недавно передо мной встала задача создания системы, работающей на основе JSON веб-сервиса.
На первый взгляд, задача тривиальна, но на решение налагалось ряд дополнительных требований:
По первому и третьему критерию проходят два кандидата — Kayak [1] и Nancy [2], однако второй критерий оставляет единственного кандидата — Nancy. Об этом фреймворке и пойдет речь.
Для комфортной работы я рекомендую установить NuGet [3].
Построение нашего сервера будет состоять из двух этапов — создания сервера, работающего через ASP и написания «запускатора» stand-alone сервера.
Итак, начнем. Первым делом нужно создать чистый ASP.NET-проект и установить туда необходимые пакеты. Для этого откройте консоль NuGet (Tools > Library Package Manager) и введите туда следующую команду:
Install-Package Nancy.Hosting.Aspnet
Nuget самподтянет необходимые зависимости, а также модифицирует файл Web.config. Если сейчас вы запустите проект, то увидите содержимое директории, в которой сейчас работает сервер.
Теперь необходимое создать модули, описывающие пути сервера и действия, совершаемые при запросе на эти пути.
Воспользуемся слегка модифицированным при мером с официального сайта:
public class SampleModule : Nancy.NancyModule { public SampleModule() { Get["/"] = _ => "Hello World!"; Get["/{name}"] = parameters => { return "Hello, " + parameters.name; }; } }
Если сейчас вы запустите сервер, то увидите строку Hello World!, по пути же localhost [4]:port/myname вы увидите приветствие уже на указанное имя.
Вот, в сущности, и все — дело за логикой сервера, но это уже выходит за рамки этой статьи.
Соберите проект из предыдущей части, если вы этого еще не делали. После этого создайте новое консольное приложение. Установите в ваш проект пакет Nancy.Hosting.Self, подключите все DLL из директории bin/ предыдущего проекта, затем создайте класс NancyExample и метод Main, выглядящий так:
static void Main(string[] args) { // initialize an instance of NancyHost (found in the Nancy.Hosting.Self package) var host = new NancyHost(new Uri("http://localhost:12345")); host.Start(); // start hosting Console.ReadKey(); host.Stop(); // stop hosting }
Вуаля — Nancy автоматически подхватит написанные вами ранее модули и успешно начнет их хостить.
Собственно, на этом можно закончить. Документацию по Nancy можно взять здесь [5].
Автор: skayred
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/net/17018
Ссылки в тексте:
[1] Kayak: http://kayakhttp.com/
[2] Nancy: http://nancyfx.org/
[3] NuGet: http://nuget.codeplex.com/
[4] localhost: http://localhost
[5] здесь: https://github.com/NancyFx/Nancy/wiki/Documentation
Нажмите здесь для печати.