11

私が試したすべての MVC フレームワーク (Rails、Merb、Waves、Spring、および Struts) では、要求 (および応答) の概念は要求の HTTP 概念に結び付けられています。つまり、Request のスーパークラスである AbstractRequest が存在する場合でも、AbstractRequest には、ヘッダー、要求メソッド (GET、POST など)、および HTTP に関連付けられたその他すべてのものがあります。

SMS、Twitter、電子メール、またはアダプターを作成できるその他の媒体で、要求と応答のサイクルをサポートしたいと考えています。これを特にうまく行うフレームワークはありますか?

私が考えた他の唯一のオプションは、たとえば、別のスレッドで実行され、メッセージをローカル HTTP 要求に変換し、応答を送り返す Twitter ポーラーを作成することです。

複数のリクエスト メディアに適したフレームワークがあれば、ルーティングはどのようになりますか? Rails では、HTTP ルーティングは次のようになります。

map.connect 'some/path/with/:parameter_1/:paramter_2', :controller => 'foo', :action => 'bar'

Twitter や SMS ルートはどのように見えるでしょうか? キーワードとパラメーターに一致する正規表現?

4

4 に答える 4

1

私は見たことがありません。問題は、リクエストもホストに関連付けられており、レスポンスがリクエストに関連付けられていることです。

したがって、電子メールでリクエストを受け取り、コントローラーがビュー「aboutus」をレンダリングするように指示した場合、MVC フレームワークで次の方法を知る必要があります。

  • 最初にリクエストを取得します - MVC フレームワークはほとんどホストである必要があります (IIS は新しい電子メールで通知を受け取らないため、電子メール ポーリング コードはどのように起動されるのでしょうか?)
  • 柔軟なルート マッチングを許可する - パス/URL によるマッチングはすべての場合に機能するとは限らないため、リクエスト固有のコントローラー ルーティングが必要になります。
  • 「aboutus」という名前の SMS または HTTP ビューではなく、aboutus電子メールビューを使用します。
  • 応答を電子メールで正しい受信者に送信する

Web MVC フレームワークでは対応できません。Web、SMS、電子メールなどを介したアクティブ化を処理できる MVC「ホスト」が必要です。

于 2008-09-22T16:15:41.270 に答える
1

Java サーブレット仕様は、サーブレットがプロトコルに中立であり、プロトコル固有の方法で拡張されるように設計されました。HttpServlet はプロトコル固有のサーブレット拡張です。私は常に、Sun やその他のサード パーティ フレームワーク プロバイダが、FtpServlet や MailServlet、この場合は SmsServlet や TwitterServlet などのプロトコル固有の拡張機能を提供するだろうと考えていました。

代わりに、人々はサーブレット フレームワークを完全にバイパスするか、HTTP の上にプロトコルを構築しました。

もちろん、必要なプロトコルにプロトコル固有の拡張機能を実装したい場合は、スタック全体を開発する必要があります - リクエスト オブジェクト、レスポンス オブジェクト、セッションを識別するメカニズム (たとえば、Cookie の代わりに SMS で MSISDN を使用する) )、テンプレートおよびレンダリング フレームワーク (JSP に相当) - そして、その上に MVC フレームワークを構築します。

于 2008-10-10T15:54:57.447 に答える
0

あなたは主にJavaやRubyで作業しているようですので、この回答がPerlに基づいていることを許してください:-)。

私は Catalyst MVC フレームワーク ( http://www.catalystframework.org/ ) が大好きです。リクエストの実際のマッピング (一般的な、一般的な意味で) を、エンジンを介してコードに委任します。確かに、すべてのエンジン クラスは現在 HTTP に基づいていますが、HTTP に基づいていない (または、おそらく Twitter などに結び付けられていたが、HTTP 相互作用から分離された) エンジン クラスを作成しようとするアイデアをもてあそびました。 Twitterが使用しています)。少なくとも、まだ試していなくても、できると確信しています。

于 2008-09-22T23:21:02.043 に答える
0

テンプレートを置き換え、入力パラメーターに従ってリダイレクトするREST ベースのアダプターを Web サイトに実装できます。

api .yourhost.com に着信するすべてのリクエストは、REST ベースのアダプターによって処理されます。

このアダプターを使用すると、プログラムで Web サイトを呼び出し、結果を解析可能な形式にすることができます。

実際には、これは次のことを意味します: テンプレートを独自のテンプレート エンジンに置き換え、その上で次のことが起こります。

  • 割り当てられたテンプレートの代わりに、汎用の xml/json テンプレートが呼び出され、すべてのテンプレート変数を含む xml を出力するだけです

その後、Twitter ポーラー、SMS ゲートウェイを作成したり、Javascript から呼び出すこともできます。

于 2008-09-30T11:31:49.940 に答える