35

NancyFx と呼ばれる HTTP 呼び出しを行うための別のフレームワークがあります。私の質問は、それを使用する利点は何ですか。私はドキュメントをざっと見ました:

https://github.com/NancyFx/Nancy/wiki/Documentation

これを使用したいという目立った機能はないようです。WebHttp よりもそれを使用する利点は何ですか?

PS:私は何度も何度も繰り返される奇妙なフレーズについて読み続けています。この「スーパー・デュパー・ハッピー・パス」以外に何かありますか? 実際の機能は実装されていますか?

4

2 に答える 2

46

ラムダを使用して相対パス、引数、および応答の実装を識別する「ルート」(MVCの意味で)を定義するための異なるアプローチを提供しているようです。

最終的に、フレームワークの主な利点はその表現力です。ASP.NET MVCでは、RouteTableはglobal.asaxにあり、実装はControlにあります。NancyFxでは、これが一般的なパターンのようです。

Action["/path"] = args => { return your_implementation_here; }

実装例:

Get["/products"] = id => { return GetRepository().Products.Single( q => q.Id == id); };

説明:「Id」の引数を持つ相対エンドポイント「/products」へのHTTPGetは、Id引数が製品のIdと一致するリポジトリから単一の製品を返します。

表現力豊かで簡潔。

于 2012-07-11T03:36:46.937 に答える
18

免責事項: 私は NancyFx のサポーターではありません :)
プロジェクトの REST 部分に NancyFx を使用するか、ASP.NET Web API を使用するかを検討中です。

GlennFerrieLive によって既に言及されているシンプルさと表現力 (それ自体に価値があると思います) とは別に、私は別のいくつかの優れた点を把握したと思います。

  1. いわばアスペクト指向の方法で、API 要求処理の前後に操作実行するのは簡単です。

  2. デフォルトでは、フレームワークは受け入れられた戻り型を処理するため、出力を JSON、XML などに適切に変換します。

  3. リクエストを実装するラムダは、実際に入力されたデータを返しません、クエリの形式のままです。その後も、実際にクエリを実行して DB にアクセスし、実際のデータを返す前に、フィルタリング、並べ替え、およびその他の操作を簡単に追加できます。

  4. 彼らはどういうわけか HttpRequest をラップし、開発者がそれと同等のものを利用できるようにしましたが、この新しいオブジェクトが注入され、もちろんそれをモックで置き換えることができるという違いがあります...とても簡単でクリーンなテストです。

おそらく、それらの一部 (すべて?) は ASP.NET Web API で既に利用可能であり、同じように簡単に利用できるかどうかはわかりません。
HTH

于 2013-03-01T01:34:30.883 に答える