Преимущества использования NancyFx?
Существует еще одна структура для создания HTTP-вызовов под названием NancyFx. Мой вопрос в том, каковы преимущества его использования. Я быстро просмотрел документацию:
https://github.com/NancyFx/Nancy/wiki/Documentation
и похоже, что нет выдающейся функции, из-за которой я хотел бы использовать это. Каковы преимущества использования его через WebHttp?
P.S: Я продолжаю читать о какой-то странной фразе, повторяющей снова и снова "супер-пупер-счастливый путь". Есть ли что-то помимо этого "супер-пупер-счастливого пути"? Любые реальные функции реализованы?
Ответы
Ответ 1
Похоже, что он предлагает другой подход к определению "маршрутов" (в смысле MVC) с использованием lambdas для определения относительных путей, аргументов и реализации ответа.
В конечном счете, ключевым фактором является его выразительность. В ASP.NET MVC RouteTable находится в global.asax, а реализация - в элементе управления. Похоже, что в NancyFx это шаблон, который преобладает:
Action["/path"] = args => { return your_implementation_here; }
Пример реализации:
Get["/products"] = id => { return GetRepository().Products.Single( q => q.Id == id); };
Объяснение: HTTP Get to относительная конечная точка "/products" с аргументом "Id" вернет один продукт из репозитория, где аргумент Id соответствует идентификатору продукта.
Выразительный и краткий.
Ответ 2
Отказ от ответственности: я не сторонник NancyFx:)
Я в процессе оценки, должен ли я пойти с NancyFx или с ASP.NET Web API для части REST проекта.
Помимо простоты и выразительности (которые, как мне кажется, имеют ценность сами по себе), уже упомянутых GlennFerrieLive, я думаю, что я понял еще пару хороших бит:
-
Легко выполнять операции до и после обработки любого API-запроса в виде ASP-ориентированного способа, так сказать.
-
По умолчанию Framework заботится о принятом возвращаемом типе, поэтому он соответствующим образом преобразует вывод в JSON, XML,...
-
Запросы Lambdas, реализующие запросы, не возвращают фактические заполненные данные, но все еще в форме запроса. После этого все еще можно легко добавить фильтрацию, сортировку и другие операции до фактического выполнения запроса, попадания в БД и возврата фактических данных.
-
Они каким-то образом завернули HttpRequest и предоставили разработчику эквивалент этого, с той разницей, что этот новый объект был инъецирован, и вы можете, конечно, заменить его макетом... Так проще и чистое тестирование.
Возможно, некоторые из этих (все?) уже доступны в ASP.NET Web API и с той же легкостью, я не знаю точно.
НТН