2

PostgreSQL データベースを使用して Ruby on Rails Web アプリケーションを構築し、Hibernate を使用して H2 データベース エンジンを使用して Java アプリケーションを構築しようとしています。

JDBC、RMI、およびソケットについて聞いたことがありますが、それらについての知識はありません。

問題は、Web アプリケーションからのデータを使用し、ローカル データベースを使用して処理を行い、最後にデータベースに変更をアップロードしたい、または Web データベースに新しいテーブルを作成したいと考えていることです。そしてすぐにウェブで変更を表示します。

たとえば、学生をウェブに登録させ、ウェブデータベースからローカルデータベースに学生を転がしてマークを入力させ、最後にウェブデータベースにマークを追加できるようにしたいと思います。ウェブでは個々のマークが必要ですすぐに公開されます。

誰かが私を助けてくれれば、とても感謝しています。

4

2 に答える 2

2

問題の解決策は (REST) API です。

api/v[number_of_version]/ の下に、API 用に別のコントローラーを作成することをお勧めします。

ここで REST API を構築する方法について、Ryan Bates によるhttp://railscasts.orgに非常に良い例があります。

ここで API のコード例を見つけることができます。

https://github.com/railscasts/350-rest-api-versioning/tree/master/store-after/app/controllers/api

その後、HTTP リクエストでデータを取得できます。

例えば。アプリでユーザーのデータを取得するには、URL で http リクエストを実行します (これは、routes.rb で API とバージョンの名前空間で定義します) /:username

例: http://yourdomain.com/ausername

そして、次のような JSON 応答が得られます

user: {
  username: "ausername"
  email: "ausername@amaildomain.com"
 .....

ご不明な点がございましたら、お気軽にお問い合わせください:)

QUESTION の更新

もちろん、この方法でデータを追加できます。正しいjsonを正しいURLにエクスポートするだけです。

私はこのアプリで例を行いました

https://github.com/Geembo/getshitdone

例:

https://github.com/Geembo/getshitdone/blob/master/app/controllers/tasks_controller.rb

このアプリでは、Javascript (バックボーン) を介してタスクを保存します。Java (およびその他の言語) にも同じ規則が適用されます。

于 2013-02-26T18:14:56.643 に答える
0

これを処理する最善の方法は、外部アプリケーションがインターフェースできる Web アプリケーションから API を提供することです。Rails の優れた点の 1 つは、基本的にこれをすぐにサポートできることです。

Web から生徒を表示するための典型的なコントローラー アクションを実行します。

class StudentsController < ApplicationController
  def show
    @student = Student.find(params[:id])
  end
end

リクエストが行われると/students/1students/showID#1 の Student に対してテンプレートがレンダリングされます。

Rails には、URL の末尾に xml/json を追加して、異なる形式の処理を要求する機能があります。

class StudentsController < ApplicationController
  respond_to :html, :json

  def show
    @student = Student.find(params[:id])
    respond_with(@student)
  end
end

これにより、レスポンダーと呼ばれる ActionController の機能がセットアップされます。これで、コントローラーにリクエストが行われると、Student モデル/students/1.jsonが呼び出さas_jsonれます。これは、デフォルトですべてのモデル属性を取得し、json オブジェクトに変換します。これは、Student モデルで as_json をオーバーライドすることでカスタマイズできます。

更新を行う場合は、同様のパターンに従うことができます。への PUT 要求を使用してサーバーに送信します/students/1.json。リクエストは JSON 形式ではありません。使用するライブラリはおそらく vars の設定をサポートしています。Rails が期待する形式 (つまりstudent[field]) であることを確認してください。あとは Rails ミドルウェアが処理してくれます。

class StudentsController < ApplicationController
  respond_to :html, :json

  def update
    @student = Student.find(params[:id])
    @student.update_attributes(params[:student])
    respond_with(@student)
  end
end

レスポンダーでは update_attributes が機能しているかどうかのチェックがないことに注意してrespond_withください。エラーがある場合、応答コードとして HTTP 422 Unprocessable Entity を取得し、応答の本文はエラーを含む JSON オブジェクトになります。

また、JSON の代わりに XML 応答本文を使用する場合は、これらのすべての例を にjson置き換えることができることにも言及する価値があります。xml

于 2013-02-26T17:34:33.190 に答える