Pregunta

En todos los marcos MVC que he probado (Rails, Merb, Waves, Spring y Struts), la idea de Solicitud (y Respuesta) está ligada a la noción HTTP de Solicitud.Es decir, incluso si hay un AbstractRequest que es una superclase de Request, el AbstractRequest tiene cosas como encabezados, métodos de solicitud (GET, POST, etc.) y todas las demás cosas vinculadas a HTTP.

Me gustaría admitir un ciclo de solicitud-respuesta a través de SMS, Twitter, correo electrónico o cualquier otro medio para el que pueda crear un adaptador.¿Existe algún marco que haga esto particularmente bien?

La única otra opción que se me ocurre es crear, por ejemplo, un sondeador de Twitter que se ejecute en un hilo separado y traduzca los mensajes en solicitudes HTTP locales y luego envíe las respuestas de regreso.

Sí hay eran un buen marco para múltiples medios de solicitud, ¿cómo sería el enrutamiento?En Rails, el enrutamiento HTTP se parece a:

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

¿Cómo sería una ruta de Twitter o SMS?¿Expresiones regulares para hacer coincidir palabras clave y parámetros?

¿Fue útil?

Solución

Parece que estás trabajando principalmente con Java y/o Ruby, así que perdóname que esta respuesta esté basada en Perl :-).

Me gusta mucho Catalyst MVC Framework (http://www.catalystframework.org/).Delega el mapeo real de solicitudes (en el sentido general y genérico) al código a través de motores.Por supuesto, todas las clases de motor se basan actualmente en HTTP, pero he jugado con la idea de intentar escribir una clase de motor que no esté basada en HTTP (o que tal vez esté vinculada a algo como Twitter, pero que esté separada de las interacciones HTTP). que usa Twitter).Por lo menos, estoy convencido de que se puede hacer, incluso si aún no lo he intentado.

Otros consejos

No he visto ninguno.El problema es que la solicitud también está vinculada al host y la respuesta está vinculada a la solicitud.

Entonces, si recibe una solicitud por correo electrónico y un controlador le dice que muestre la vista "acerca de nosotros", necesitará el marco MVC para saber cómo hacerlo:

  • obtenga la solicitud en primer lugar: el marco MVC casi necesitaría ser un host (IIS no recibe notificaciones sobre nuevos correos electrónicos, entonces, ¿cómo se activa su código de sondeo de correo electrónico?)
  • permitir una coincidencia de rutas flexible: la coincidencia por ruta/URL no funcionaría para todos, por lo que se necesitaría un enrutamiento del controlador específico de la solicitud
  • usa el acerca de nosotros correo electrónico vista en lugar de la vista SMS o HTTP llamada "aboutus"
  • enviar la respuesta por correo electrónico al destinatario correcto

Un marco web MVC no va a ser suficiente: necesitará un "host" MVC que pueda manejar la activación a través de la web, SMS, correo electrónico, lo que sea.

La especificación Java Servlet fue diseñada para que los Servlets sean protocolos neutrales y se extiendan de una manera específica del protocolo: HttpServlet es una extensión de Servlet específica del protocolo.Siempre imaginé que Sun, u otros terceros proveedores de frameworks, crearían otras extensiones específicas de protocolo como FtpServlet o MailServlet, o en este caso SmsServlet y TwitterServlet.

En cambio, lo que sucedió es que la gente o bien pasó por alto completamente el marco de trabajo de Servlet o construyó sus protocolos sobre HTTP.

Por supuesto, si desea implementar una extensión específica del protocolo para los protocolos requeridos, tendría que desarrollar toda la pila: objeto de solicitud, objeto de respuesta, un mecanismo para identificar sesiones (por ejemplo, usar MSISDN en un SMS en lugar de cookies). ), un marco de creación de plantillas y renderizado (equivalente a JSP), y luego construir un marco MVC encima de él.

Podrías implementar un Basado en REST Adaptador sobre tu sitio web, que reemplaza las plantillas y redirecciona según los parámetros de entrada.

Todas las solicitudes que llegan API.yourhost.com será manejado por el adaptador basado en REST.

Este adaptador permitiría llamar a su sitio web mediante programación y tener el resultado en un formato analizable.

Prácticamente esto significa:Reemplaza las Plantillas con un Motor de Plantillas propio, en el que suceden estas cosas:

  • en lugar de la plantilla asignada, se llama a una plantilla xml/json genérica, que simplemente genera un xml que contiene todas las variables de plantilla

luego puedes crear tu Twitter Poller, SMS Gateway o incluso llamarlo desde Javascript.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top