Frage

In jedem MVC-Framework Ich habe versucht (Rails, Merb, Wellen, Spring und Struts), die Idee eines Request (und Antwort) an den HTTP Vorstellung einer Anfrage gebunden. Das heißt, selbst wenn es eine AbstractRequest, die eine übergeordnete Klasse der Anforderung ist, die AbstractRequest hat Dinge wie Header, Request-Methode (GET, POST, etc.), und all die anderen Dinge zu HTTP gebunden.

Ich möchte eine Anfrage-Antwort-Zyklus über SMS unterstützen, Twitter, E-Mail, oder jedes andere Medium, für die ich einen Adapter machen kann. Gibt es einen Rahmen, der dies tut besonders gut?

Die einzige andere Option, die ich gedacht habe von schafft, zum Beispiel ein Twitter poller, die in einem separaten Thread ausgeführt wird und übersetzt Nachrichten in lokale HTTP-Anfragen sendet dann die Antworten wieder aus.

Wenn es wurde ein guter Rahmen für mehr Anfrage Medien, was aussehen wie Routing würde? In Rails sieht das HTTP-Routing so etwas wie:

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

Wie würde ein Twitter oder SMS Route suchen? Reguläre Ausdrücke Schlüsselwörter und Parameter übereinstimmen?

War es hilfreich?

Lösung

Sie scheinen vor allem auf die Zusammenarbeit mit Java und / oder Ruby, so verzeiht mir, dass diese Antwort auf Perl basiert: -).

Ich bin sehr gern Catalyst MVC Framework ( http://www.catalystframework.org/). Es Delegierten die tatsächliche Abbildung von Anforderungen (im Allgemeinen allgemeinen Sinn) über Motoren zu codieren. Zugegeben, alle werden die Motorklassen zur Zeit auf HTTP basiert, aber ich habe mit der Idee, zu versuchen, einen Motor Klasse geliebäugelt zu schreiben, die nicht auf HTTP-basierte (oder war vielleicht so etwas wie Twitter gebunden, wurden aber von den HTTP-Interaktionen getrennt dass Twitter verwendet). Am allerwenigsten, ich bin überzeugt, dass es getan werden kann, auch wenn ich nicht dazu gekommen, habe sie noch zu versuchen.

Andere Tipps

Ich habe ihn nicht gesehen. Das Problem ist, dass der Antrag auch an den Host gebunden ist, und die Antwort auf die Anforderung gebunden.

Wenn Sie also eine Anfrage in per E-Mail erhalten, und eine Steuerung, sagt Ansicht „aboutus“ zu machen, dann werden Sie den MVC-Framework muss wissen, wie man:

  • die Anfrage an erster Stelle bekommen - der MVC-Framework fast ein Host benötigen würde sein (? IIS nicht auf neue E-Mails benachrichtigt werden, so wie funktioniert Ihr E-Mail-Abrufcode gefeuert)
  • flexible Routenanpassung erlauben - Anpassung durch Pfad / url würde für alle nicht funktionieren, so anforderungsspezifische Controller-Routing erforderlich sein würde
  • verwenden, um den aboutus E-Mail Ansicht, anstatt die SMS oder HTTP-Ansicht "aboutus" genannt
  • per E-Mail die Antwort versenden, an den richtigen Empfänger

Ein Web-MVC-Framework wird sich nicht schneiden - Sie werden eine MVC „host“ benötigen, die Aktivierung durch Web umgehen kann, SMS, E-Mail, was auch immer.

Die Java Servlet-Spezifikation wurde entwickelt für Servlets Protokoll neutral zu sein, und in einer protokollspezifischen Art und Weise erweitert werden - HttpServlet eine protokollspezifische Servlets Erweiterung zu sein. Ich stellte mir immer, dass Sun oder andere Dritt poarty Rahmen Anbieter würde kommen mit anderen protokollspezifische Erweiterungen wie FtpServlet oder MailServlet, oder in diesem Fall SmsServlet und TwitterServlet.

Stattdessen, was geschehen ist, ist, dass die Menschen entweder vollständig den Servlet Rahmen umgangen, oder haben ihre Protokolle über HTTP gebaut.

Natürlich, wenn Sie eine protokollspezifische Erweiterung für Ihre erforderlichen Protokolle implementieren mögen, würden Sie den ganzen Stapel entwickeln müssen - Request-Objekt, Response-Objekt, einen Mechanismus zur Identifizierung von Sitzungen (zum Beispiel der MSISDN in einer SMS mit anstelle von Cookies), ein Templat und Rendering-Framework (äquivalent von JSP) -. und dann einen MVC-Framework auf es baut

Sie können eine REST-basierte Adapter über Ihre Website implementieren, die die Vorlagen ersetzt und umleitet nach den Eingabeparametern.

Alle requestes kommen in auf api .yourhost.com wird von den REST basierten Adapter behandelt werden.

Dieser Adapter erlauben würde, Ihre Website programmatisch zu rufen und das Ergebnis in einem parseable Format hat.

Praktisch bedeutet dies: Es die Vorlagen mit einem eigenen Template Engine ersetzt, auf das diese Dinge geschehen:

  • anstelle der zugeordneten Vorlage, eine generische XML / JSON-Vorlage aufgerufen, die nur eine xml ausgibt, die alle Vorlage enthält Vars

, dann können Sie Ihre Twitter-Poller, SMS-Gateway oder sogar aus Javascript aufrufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top