user115188
user115188

Reputation: 165

Communication between Rails apps

I have built two rails apps that need to communicate and send files between each other. For example one rails app would send a request to view a table in the other apps' database. The other app would then render json of that table and send it back. I would also like one app to send a text file stored in its public directory to the other app's public directory.

I have never done anything like this so I don't even know where to begin. Any help would be appreciated. Thanks!

Upvotes: 7

Views: 4448

Answers (5)

jdl
jdl

Reputation: 17790

As a starting point, look at ActiveResource.

Railscast

docs

Upvotes: 2

maletor
maletor

Reputation: 7122

Message queuing systems such as RabbitMQ may be used to communicate things internally between different apps such as a "mailer" app and a main "hub" application.

Alternatively, you can use a shared connection to something like redis stick things onto a "queue" in one app and read them for processing from the other.

Upvotes: 1

zetetic
zetetic

Reputation: 47548

Check out Morpheus. It lets you create RESTful services and use familiar ActiveRecord syntax in the client.

Upvotes: 0

Holger Just
Holger Just

Reputation: 55718

In recent Rails versions, it is rather easy to develop API only applications. In the Rails core master, there was even a special application type for these apps briefly (until it got yanked again). But it is still available as a plugin and probably one day becomes actually part of Rails core again. See http://blog.wyeworks.com/2012/4/20/rails-for-api-applications-rails-api-released for more information.

To actually develop and maintain the API of the backend service and make sure both backend and frontend have the same understanding of the resources, you can use ROAR which is great way to build great APIs.

Generally, you should fully define your backend application with an API. Trying to be clever and to skip some of the design steps will only bring you headaches in the long run...

Upvotes: 0

sameera207
sameera207

Reputation: 16619

You requirement is common for almost all the web apps irrespective of rails, Communicating with each other is required by most modern web apps. But there is a small understanding that you need to get hold on,

Web sites should not directly access each others internal data (such as tables), (even if they are build by the same language (in this case Rails) by the same developer),

That is where the web-services comes in to play, So you should expose your data through web services so that not only rails application can consume that, but also any app that knows how to consume a web service will get benefit.

Coming back to your question with Rails, rails supports REST web services out of the box, So do some googling about web services, REST web services with rails

HTH

Upvotes: 5

Related Questions