2017-07-10 11 views
0

私はアプリを開発しており、Ruby on RailsまたはPython+Djangoのいずれかを選択する必要があります。今のところ私はRuby on Railsでそれをやりたいと思っています。なぜなら、私は自分がしなければならないことをより快適に感じているからです。PythonクライアントからRuby on Railsアプリケーションへの通信方法は?

しかし、問題があります。私と通信しなければならないPythonに書かれたクライアントアプリがあります。アプリケーションが私と通信できるようにする必要があります。

まず:私はそれがMySQLデータベースとの通信の問題である場合Pythonアプリは適切な認証右にMySQLサーバに照会することができ引き起こし、問題はないだろうと思いますか?

第二:、より重要な質問:私は、クエリを容易にするために、Ruby書かれたAPIを使用している場合は、PythonアプリはそのAPIの関数を呼び出し、結果を得ることができるだろうか?それが可能なら、どのように達成できますか?

答えて

0

Ruby on Rails 5は、APIのみのアプリケーションをサポートしています。それ以外の場合は通常のアプリケーションを作成し、jsonを出力するAPIエンドポイントを公開してください。 MySqlデータベースのマッピングにはActive Recordを使用し、jsonビューにはjbuilderを使用します(どちらも新しいアプリケーションの作成時にデフォルトで使用可能です)。あなたがGoogle Use Ruby on Rails as API appであれば多くのチュートリアルがあります。

幸運にもそれと.. :)

+0

私はAPIのためだけにこのアプリを使用していません、それはフロントエンドを持つWebアプリです。 Pythonから呼び出される関数用のAPIモジュールを含めることができますか(どのようにすればいいですか?)、またはPythonアプリケーションに直接データベースに問い合わせるように依頼することができますか? –

+0

はい、 'API'名前空間モジュールとルートを作成します。 ID 1のユーザの詳細を取得したい場合、ルートは 'domain/api/v1/user/1'になります。これは' users#show'データベースに問い合わせてjson '{id :1、fname: 'foo'、lname: 'bar' ... '。あなたのpythonアプリケーションはdbと全く接続する必要はなく、レールアプリケーションのすべてのビジネスロジックでのみ(これをお勧めします)基本的なクライアントアプリケーションになります –

+0

短い答え:経由で公開されているJSONベースのRESTful API http呼び出し。これは非常に軽量な作業であり、2つの別々のテクノロジーが通信できるように共通のテクノロジ(この場合はJSONとHTTP)に依存していることがわかります。これは本当に基本的に回答者の言うことですが、私がそれをこのように表現したことを聞いたとき、それは私にとって意味がありました。 – jaydel

関連する問題