2012-04-23 16 views
5

Ich habe zwei Rails-Apps gebaut, die kommunizieren und Dateien zwischen einander senden müssen. Zum Beispiel würde eine Rails-App eine Anfrage senden, um eine Tabelle in der Datenbank der anderen Apps anzuzeigen. Die andere App würde dann json dieser Tabelle rendern und zurücksenden. Ich möchte auch, dass eine App eine in ihrem öffentlichen Verzeichnis gespeicherte Textdatei an das öffentliche Verzeichnis der anderen App sendet.Kommunikation zwischen Rails apps

Ich habe noch nie so etwas gemacht, also weiß ich nicht einmal, wo ich anfangen soll. Jede Hilfe wäre willkommen. Vielen Dank!

Antwort

2

Als Ausgangspunkt betrachten Sie ActiveResource.

Railscast

docs

+2

ActiveResource ist mehr oder weniger veraltet. Beginnend mit Rails 4.0 wird es nicht mehr Standard-Teil von Rails sein. Und es sei denn, jemand wird es aufrechterhalten, es wird für immer verschwinden ... –

+0

Ah, das ist schade. Zumindest ist die Idee anständig genug, also hoffentlich gibt es einen Ausgangspunkt.Hauptsächlich möchten Sie, dass eine Rails-App eine REST-konforme Oberfläche für die Welt bereitstellt, und dann die andere App zufällig diese Schnittstelle verwendet, um die benötigten Daten zu erhalten. – jdl

+0

2st Link gibt eine 404 zurück. – Alan

5

Sie Anforderung ist für fast alle Web-Apps unabhängig von Schienen gemeinsam, miteinander kommunizieren von den meisten modernen Web-Anwendungen erforderlich ist. Aber es gibt ein kleines Verständnis, das Sie brauchen, um zu erhalten,

Websites sollten nicht direkt auf andere interne Daten zugreifen (wie Tabellen), (auch wenn sie von der gleichen Sprache (in diesem Fall Rails) gebaut werden von demselben Entwickler),

Hier kommt der Web-Service ins Spiel, also sollten Sie Ihre Daten über Web-Services verfügbar machen, damit nicht nur Rails-Anwendungen das konsumieren können, sondern auch jede App, die zu konsumieren weiß Ein Webservice wird davon profitieren.

auf Ihre Frage mit Rails Kommen wir zurück, unterstützt Schienen REST Web-Services aus der Box, also tun es einige googeln über Web Services, REST Web Services mit Schienen

HTH

0

In den letzten Rails-Versionen, ist ziemlich einfach zu API-Anwendungen zu entwickeln. Im Rails-Core-Master gab es für diese Apps sogar kurz einen speziellen Anwendungstyp (bis er wieder gerissen wurde). Aber es ist immer noch als Plugin verfügbar und wahrscheinlich wird ein Tag tatsächlich wieder zum Kern von Rails. Weitere Informationen finden Sie unter http://blog.wyeworks.com/2012/4/20/rails-for-api-applications-rails-api-released.

Um tatsächlich die API des Back-End-Dienstes zu entwickeln und zu pflegen und sicherzustellen, dass sowohl Backend als auch Frontend dasselbe Verständnis der Ressourcen haben, können Sie ROAR verwenden, was eine großartige Möglichkeit ist, großartige APIs zu erstellen.

Im Allgemeinen sollten Sie Ihre Back-End-Anwendung vollständig mit einer API definieren. Der Versuch, clever zu sein und einige der Designschritte zu überspringen, wird Ihnen auf lange Sicht nur Kopfzerbrechen bereiten ...

+0

Können Sie Ressourcen empfehlen, um sich über gutes API-Design zu informieren? – danieldekay

+0

Versuchen Sie dieses Dokument von Apigee: http://info.apigee.com/Portals/62317/docs/web%20api.pdf – bryanbraun

0

Schauen Sie sich Morpheus an. Sie können REST-konforme Dienste erstellen und die vertraute ActiveRecord-Syntax im Client verwenden.

1

Message Queuing-Systeme wie RabbitMQ können verwendet werden, um Dinge intern zwischen verschiedenen Apps wie einer "Mailer" -App und einer Hauptanwendung "Hub" zu kommunizieren.

Alternativ können Sie eine gemeinsame Verbindung zu etwas wie redis Dinge in eine "Warteschlange" in einer App stecken und sie für die Verarbeitung von der anderen lesen.