2012-04-23 23 views
5

He creado dos aplicaciones de rieles que necesitan comunicarse y enviar archivos entre sí. Por ejemplo, una aplicación de rieles enviaría una solicitud para ver una tabla en la base de datos de otras aplicaciones. La otra aplicación representaría json de esa tabla y la enviaría de vuelta. También me gustaría que una aplicación envíe un archivo de texto almacenado en su directorio público al directorio público de la otra aplicación.Comunicación entre aplicaciones Rails

Nunca he hecho algo así, así que ni siquiera sé por dónde empezar. Cualquier ayuda sería apreciada. ¡Gracias!

Respuesta

2

Como punto de partida, mira ActiveResource.

Railscast

docs

+2

ActiveResource es más o menos obsoleto. Comenzando con Rails 4.0, ya no será parte estándar de Rails. Y a menos que alguien intervenga para mantenerlo, se habrá ido para siempre ... –

+0

Ah, eso está muy mal. Al menos la idea es lo suficientemente decente, así que con un poco de suerte proporciona un punto de partida.Principalmente, desea una aplicación de Rails que proporcione una interfaz RESTful al mundo, y luego la otra aplicación simplemente usa esa interfaz para obtener los datos que necesita. – jdl

+0

2º enlace devuelve un 404. – Alan

5

Es requisito es común para casi todo el aplicaciones web con independencia de los carriles, se comunican entre sí es requerido por la mayoría de las aplicaciones web modernas. Pero hay un pequeño entendimiento de que necesita agarrarse,

Los sitios web no deben acceder directamente a los datos internos de los demás (como las tablas), (incluso si están compilados por el mismo idioma (en este caso, Rails) por el mismo desarrollador),

Ahí es donde los servicios web entran en juego, por lo que debe exponer sus datos a través de servicios web para que no solo las aplicaciones de rieles puedan consumir eso, sino también cualquier aplicación que sepa cómo consumir un servicio web obtendrá un beneficio.

Volviendo a su pregunta con rieles, rieles soporta servicios web REST fuera de la caja, por lo que algunas google acerca de los servicios web, servicios web REST con rieles

HTH

0

En versiones recientes de los carriles, se es bastante fácil desarrollar aplicaciones solo API. En el núcleo principal de Rails, incluso hubo un tipo de aplicación especial para estas aplicaciones brevemente (hasta que se volvió a arrancar). Pero todavía está disponible como un complemento y, probablemente, un día se convierta en parte del núcleo de Rails nuevamente. Ver http://blog.wyeworks.com/2012/4/20/rails-for-api-applications-rails-api-released para más información.

Para realmente desarrollar y mantener la API del servicio de backend y asegurarse de que tanto el servidor como la interfaz tengan la misma comprensión de los recursos, puede usar ROAR, que es una excelente forma de crear API excelentes.

Generalmente, debe definir completamente su aplicación back-end con una API. Intentar ser inteligente y omitir algunos de los pasos de diseño solo le traerá dolores de cabeza a largo plazo ...

+0

¿me puede recomendar recursos para aprender sobre el buen diseño de API? – danieldekay

+0

Pruebe este documento de Apigee: http://info.apigee.com/Portals/62317/docs/web%20api.pdf – bryanbraun

0

Consulte Morpheus. Le permite crear servicios RESTful y utilizar la sintaxis familiar de ActiveRecord en el cliente.

1

Los sistemas de cola de mensajes, como RabbitMQ, se pueden usar para comunicar cosas internamente entre diferentes aplicaciones, como una aplicación de "envío por correo" y una aplicación principal "concentrador".

Como alternativa, puede usar una conexión compartida a algo así como redis pegar cosas en una "cola" en una aplicación y leerlas para procesarlas desde la otra.